Znalazłem podobne pytanie tutaj na forum, jednak w dalszym ciągu nie do końca rozumiem, kiedy tak właściwie używać zapytania JOIN ?
Mam 3 tabele: uzytkownicy, dane, adres związane relacjami. Zaznaczyłem wszystko z tych tabel (gdzie id z tabeli użytkownicy jest takie jak id użytkownika zalogowanego), dwoma sposobami:
SELECT * FROM uzytkownicy, dane, adres WHERE uzytkownicy.iddane = dane.iddane AND dane.idadres = adres.idadres AND id=:id
oraz za pomocą JOIN:
SELECT * FROM `uzytkownicy` LEFT JOIN `dane` ON `uzytkownicy`.`iddane` = `dane`.`iddane` AND `dane`.`iddane` = `uzytkownicy`.`iddane` LEFT JOIN `adres` ON `dane`.`idadres` = `adres`.`idadres` AND `adres`.`idadres` = `dane`.`idadres` WHERE `id`=:id
Uzyskany efekt jest taki sam. Pierwsza opcja na pewno jest krótsza, ale jakie jeszcze są różnicę? Czy są takie przypadki, kiedy pierwszego sposobu nie da się użyć i pozostaje drugi? Albo na odwrót?
Przy okazji, czy jest jakaś różnica między górnym zapisem JOIN, a tym? Efekt również ten sam.
SELECT * FROM `uzytkownicy` LEFT JOIN `dane` ON `uzytkownicy`.`iddane` = `dane`.`iddane` LEFT JOIN `adres` ON `dane`.`idadres` = `adres`.`idadres` WHERE `id`=:id