Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: polaczenie 3 tabel
Forum PHP.pl > Forum > Bazy danych
a79rtur
mam nastepujace pytanie
mam 3 tabele

Kod
SELECT * FROM uzytkownik LEFT JOIN uz_staz ON uz_staz_uz_id=uz_id WHERE $warunki AND uz_status = '1' GROUP BY uz_id


powyzsze zapytanie zwraca mi pola z tabeli uzytkownik ktore mają spelnione warunki dla tych dwoch tabeli i identyczne id
jak dolozyc do tego tab3 czyli 3cią tabele, tak zeby zwracalo mi tylko te pola ktore: maja identyczne id dla tabeli uzytkownik i tab3
oraz spełniony dodatkowo jakistam warunek dla tab3 (np costam like costam3)

podejrzewam ze sprowadza sie to do dodatkowego left joina ale nie wiem jak to zapisac
nocnyMark()
zapytanie zwracajace wszystkie pozycje z tabeli uzytkownik, plus dopasowanie wg regul pol z uz_stat i tab3, gdzie nie pasuja pola z uz_staz i tab3, tam bedzie wyswietlany NULL
  1. SELECT *
  2. FROM uzytkownik LEFT JOIN uz_staz ON uz_staz.uz_id=uzytkownik.id
  3. LEFT JOIN tab3 ON tab3.id=uzytkownik.id AND tab3.costam=wartosc
  4. WHERE $warunki AND uzytkownik.STATUS = '1'


lub:

zapytanie zwracajace tylko te pola z tabeli `uzytkownik` i `tab3` gdzie spelnione sa warunki, plus dodatkowo wg regol dopasowanie z tabeli `uz_stat`, gdzie nie dopasuje to NULL
dodatkowo, pole `costam` w tabeli `tab3` musi spelniac warunek 'wartosc'

  1. SELECT *
  2. FROM uzytkownik, tab3
  3. LEFT JOIN uz_staz ON uz_staz.uz_id=uzytkownik.id
  4. WHERE $warunki AND uzytkownik.STATUS = '1' AND tab3.id=uzytkownik.id AND tab3.costam=wartosc
a79rtur
dzieki wielkie, działają oba, i dają mi to samo,
nie za bardzo rozumiem roznice, mozesz wyjasnic tak z ciekawosci ?
SongoQ
Przeciez @nocnyMark() wyjasnil czym sie roznia. Poczytaj o zlaczeniach to zobaczysz roznice.

W przykladzie 2 jesli warunke zlaczenia nie jest spelniony to rekordy z tabeli uzytkownik nie sa zwracane, a w 1 zapytaniu jesli nie spelnia warunku to zwraca rekordy z tabeli uzytkownik i dolancza z wartoscia NULL. Moze to Ci cos rozjasni.
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.