Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Łączenie tabel
Forum PHP.pl > Forum > Przedszkole
Bryla
Witam, mam pytanie co do łączenia tabel. Opiszę trochę, żeby było jaśniej:
W tabeli movie w kolumnie movie_leadactor jest liczba, która odpowiada id_people z tabeli people (czyli movie.movie_leadactor jest takie same jak people.people_id), tak samo jest z kolumną movie_director (czyli movie_director jest takie same jak people_id). Do każdego poeople_id jest przypisane people_fullname (czyli imię i nazwisko aktora). Chcę zrobić żeby PHP pobierał movie_leadactor i movie_director i porównywał z poeople_id. Następnie każdemu people_id przypisywał people_fullname i później za pomocą pentli while wyświetlał: movie_name - people_fullname.

Mam nadzieję, że wszystko jest jasne. Nie mam pomysłu jak to zrobić.

Z góry dzięki za odp
Max Damage
Pewny nie jestem, ale coś w tym stylu:
  1. SELECT people_fullname FROM people pp JOIN (SELECT p,people_id,m.movie_name FROM people p JOIN movie m ON p.people_id = m.movie_leadactor WHERE p.people_id = m.movie_leadactor AND p.people_id = movie_director) AS abc ON abc.people_id = pp.people_id

Bryla
Niestety pokazuje błąd:
Parse error: syntax error, unexpected T_STRING in C:\xampp\htdocs\php\select3.php on line 9

Zrobiłem coś takiego:
  1. $query = "SELECT movie_year, movie_name, people_isactor, people_isdirector, movie_leadactor, movie_director, people_id, people_fullname " .
  2. "FROM movie " .
  3. "LEFT JOIN people " .
  4. "ON movie_leadactor = people_id " .
  5. "AND movie_director = people_id " .
  6. "AND people_id = people_fullname " .
  7. "WHERE movie_year> 1980 " .
  8. "ORDER BY movie_name";


Ale pokazuje tylko:

2003 Bruce Wszechmogący 1 2
1991 Wielki Kanion 4 3
1999 Życie biurowe 5 6
athei
Weź rozpisz jakoś porządnie struktury tych tabel, bo teraz ciężko się połapać.
Co do błędu to skąd mamy wiedzieć co masz w 9 linijce?
Co do zapytania, to po co łączysz nowe linie poprzez . i ". Równie dobrze możesz napisać
Kod
$query = "SELECT movie_year, movie_name, people_isactor, people_isdirector, movie_leadactor, movie_director, people_id, people_fullname
           FROM movie
           LEFT JOIN people itd

Bryla
@up Tak się jakoś nauczyłem to oddzielać. W 9 linijce mam to co napisał Max Damage.

SS z phpmyadmin:

1.movie


2.people
athei
Chyba o to chodzi:
  1. SELECT p.people_fullname, m.movie_name
  2. FROM people AS p
  3. JOIN movie AS m
  4. ON m.movie_leadactor = p.people_id
  5. OR m.movie_director = p.people_id

Zwróci w skrócie:
Kod
people_fullname     movie_name
Jim                  Bruce
Tom                 Bruce
Lawrence             wielki
Kevin               wielki
Ron                 Zycie
Mike                 Zycie
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.