Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Mysql] Złączenie trzech tabel
Forum PHP.pl > Forum > Bazy danych > MySQL
seeb
Mam problem ze złączeniem trzech tabel, które doprowadzają mnie dziś już do szału
OPIS TABEL
--------------------
CODE
tabela1: sys_ptp
lp pracodawca id
1 30 32
2 30 33
3 2 38
4 59 55

tabela 2:sys_users
id imie_nazwisko email
32 Agnieszka Fikcyjna afikcyjna@onet.pl
33 Ryszarda Fikcyjna ryszardaf@onet.pl
38 Zdzisław Fikcyjny Fzdzichu@onet.pl
55 Zdzisław Przesieka przesieka@onet.pl

Tabela 3:sys_pracownicy_dane
id nr_szafki nr_kartoteki numer_klucza_zapasowego
32 11 1890 339887
33 12 1891 743689
38 45 1271 129887
55 90 0946 877639

Muszę z tych tabel wybrać po numerze pracodawcy zestaw danych wszystkich danych użytkowników przypisanych do znanego pracodawcy np nr 30 ale już brakuje mi pomysłów.

  1. SELECT *
  2. FROM sys_ptp ptp
  3. JOIN sys_users u ON ptp.id = u.id
  4. JOIN sys_pracownicy_dane p ON p.id=u.id
  5. WHERE ptp.pracodawca = 30

daje jeden wynik a powinien dać dwa. Za wszelką pomoc będę niezmiernie wdzięczny i z góry dziękuję.
mortus
Użyj LEFT JOIN. W zapytaniu zgubiłeś ON przy drugim złączeniu. Zmień też kolejność kolumn przy tym drugim złączeniu.
seeb
A dziekuję za podpowiedz LEFT użyłem w obu przypadkach i zamieniłem p.id=u.id na u.id = p.id i wydaje się, że wszystko w porządku. Dodaję + za pomoc.
ON zgubiłem w czasie przepisywania smile.gif
Finalnie:
  1. SELECT *
  2. FROM sys_ptp ptp
  3. LEFT JOIN sys_users u ON ptp.id = u.id
  4. LEFT JOIN sys_pracownicy_dane p ON u.id=p.id
  5. WHERE ptp.pracodawca = 30
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.