SQL LEFT JOIN używamy aby pobrać dane z kilku tabel za jednym zapytaniem, rozwiązanie to jest bardzo dobre gdyż oszczędza nam ponownego łączenia z bazą.
Przykład mamy 2 Tabele:
1. Tabela Klient
Imie | Nazwisko |
Jan | Nowak |
Agata | Kowalska |
Marcin | Wiśniewski |
2. Tabela Zamowienia
id | Nazwisko |
1 | Nowak |
2 | Nowak |
3 | Nowak |
4 | Kowalska |
5 | Kowalska |
6 | Kowalska |
7 | Wiśniewski |
Jeśli chcemy za jednym zapytaniem pobrać wszystkie id zamówienia jakich dokonała osoba o nazwisku Nowak oraz jej imie użyjemy następującego zapytania:
Wyjaśnienie:
a.imie używamy prefixu który zadeklarowaliśmy w tym miejscu: Klient AS a
tak samo jest z b.id Zamowienia AS b
Równie dobrze zapytanie mogło by mieć postać:
$zapytanie = "SELECT Klient.imie, Zamowienia.id FROM Klient LEFT JOIN Zamowienia ON Klient.nazwisko=Zamowienia.nazwisko";
Linijka : a.nazwisko=b.nazwisko w tym miejscu ustawiamy że chcemy pobrać tylko te rekordy gdzie nazwisko w tabeli klienci jest to samo gdzie nazwisko w tabeli zamówienia.
SQL zwróci nam:
1 Jan
2 Jan
3 Jan
Ponieważ chcieliśmy pobrać id zamówień na nazwisko Nowak i imię
Listing
Ranga: Administrator serwisu Punktów: 0