SQL LEFT JOIN

SQL LEFT JOIN



DEFINICJA

LEFT JOIN służy także do łączenia tabel. Dla lepszego zobrazowania procesu łączenia LEFT JOIN wyobraźmy sobie sytuację gdzie mamy dwie tabele: tabela 1 (zwana dalej t1) po lewej stronie i tabela 2 (zwana dalej t2) po prawej stronie. Każda z tabel posiada pole (klucz) wg którego będziemy łączyć obie tabele: t1.klucz i t2.klucz (pamiętamy, że pola te muszą być tego samego typu). W przypadku zastosowania LEFT JOIN przy złączeniu system weźmie wszystkie wartości z t1.klucz (tabela po lewej stronie polecenia LEFT JOIN) i będzie próbował dopasować takie same wartości z t2.klucz (tabela po prawej stronie polecenia LEFT JOIN). Jeśli ich nie znajdzie po prawej stronie (czyli po stronie t2) wpisze w to miejsce wartość NULL, oznaczającą brak dopasowania, brak wartości po stronie t2. LEFT JOIN używamy po słówku FROM. LEFT JOIN stosuje się w sytuacji kiedy nie jesteśmy pewni czy łącząc dwie tabele wyszukamy połączenie dla wszytkich rekordów po obu stronach. Jeżeli jesteśmy pewni, że to połączenie będzie, to stosujemy raczej INNER JOIN. W przypadku znalezienia dopasowania wartości po obu stronach (obu tabel) LEFT JOIN i INNER JOIN powinny zwrócić takie same wyniki.
Po złączeniu mamy dwie możliwości. Jeżeli chcemy uzyskać wszystkie wartości z tabeli 1 + część wspólną (grafika poniżej) to korzystamy ze składni:

SQL LEFT JOIN grafika

SQL LEFT JOIN składnia

SELECT
nazwa_kolumny(kolumn)
FROM
tabela1 LEFT  JOIN tabela2 ON (tabela1.klucz = tabela2.klucz)

a jeśli chcemy uzyskać wszysktie wartości z tabeli 1 ale bez tych które stanowią część wspólną to oprócz złączenia JOIN LEFT musimy szukać tych które po stronie tabeli 2 mają wartość NULL, czyli

SQL LEFT JOIN składnia

SELECT
nazwa_kolumny(kolumn)
FROM
tabela1 LEFT  JOIN tabela2 ON (tabela1.klucz = tabela2.klucz)
WHERE
tabela2.klucz IS NULL