Podsumowanie: w tym samouczku dowiesz się o klauzuli MySQL LEFT JOIN I jak zastosować ją do zapytania danych z dwóch lub więcej tabel.
Wprowadzenie do MySQL LEFT JOIN
LEFT JOIN pozwala na zapytanie danych z dwóch lub więcej tabel. Podobnie doINNER JOIN, LEFT JOINjest opcjonalną klauzulą SELECT, która pojawia się bezpośrednio po FROM klauzuli.,
Załóżmy, że chcesz połączyć dwie tabele t1 I t2.
poniższe polecenie pokazuje, jak używać klauzuli LEFT JOIN aby połączyć dwie tabele:
Code language: SQL (Structured Query Language) (sql)
Kiedy używasz klauzuli LEFT JOIN, wprowadza się pojęcia lewej i prawej tabeli.
w powyższej składni t1jest lewą tabelą, a t2 jest prawą tabelą.,
klauzulaLEFT JOIN wybiera dane z lewej tabeli (t1). Pasuje do każdego wiersza z lewej tabeli (t1) z każdym wierszem z prawej tabeli (t2) na podstawie join_condition.
Jeśli wiersze z obu tabel powodują, że warunek join zostanie oceniony naTRUE,LEFT JOIN łączy kolumny wierszy z obu tabel w nowy wiersz i zawiera ten nowy wiersz w wierszach wynikowych.,
jeśli wiersz z lewej tabeli (t1) nie pasuje do żadnego wiersza z prawej tabeli (t2),LEFT JOIN nadal łączy kolumny wierszy z obu tabel w nowy wiersz i zawiera nowy wiersz w wierszach wynikowych. Jednak używa NULL dla wszystkich kolumn wiersza z prawej tabeli.
innymi słowy, LEFT JOIN zwraca wszystkie wiersze z lewej tabeli niezależnie od tego, czy wiersz z lewej tabeli ma pasujący wiersz z prawej tabeli, czy nie., Jeśli nie ma dopasowania, kolumny wiersza z prawej tabeli będą zawierać NULL.
poniższy diagram Venn pomaga Ci zobrazować działanie klauzuli LEFT JOIN:
MySQL LEFT JOIN examples
weźmy kilka przykładów użycia klauzuli LEFT JOIN.,
1) przy użyciu MySQL LEFT JOIN klauzula do łączenia dwóch tabel
zobacz następujące tabelecustomers Iorders w przykładowej bazie danych.
każdy klient może mieć zero lub więcej zamówień, podczas gdy każde zamówienie musi należeć do jednego klienta.,
to zapytanie wykorzystuje klauzulę LEFT JOIN, aby znaleźć wszystkich klientów i ich zamówienia:
Code language: SQL (Structured Query Language) (sql)
Alternatywnie, można zapisać kilka wpisów za pomocą aliasów tabeli:
Code language: SQL (Structured Query Language) (sql)
w tym przykładzie:
customersjest lewą tabelą iordersjest właściwą tabelą.- klauzula
LEFT JOINzwraca wszystkich klientów, w tym klientów, którzy nie mają zamówienia., Jeśli klient nie ma zamówienia, wartości w kolumnieorderNumberIstatussąNULL.,
ponieważ zarówno klienci tabeli, jak i zamówienia mają tę samą nazwę kolumny ( customerNumber) w warunku łączenia z operatorem equal, możesz użyć składni w następujący sposób:
Code language: SQL (Structured Query Language) (sql)
następujące klauzule są równoważne:
Code language: SQL (Structured Query Language) (sql)
i
Code language: SQL (Structured Query Language) (sql)
jeśli zastąpisz LEFT JOIN klauzulą INNER JOIN, otrzymasz tylko klientów, którzy mają co najmniej jedno zamówienie.,
2) Używanie MySQL LEFT JOIN klauzula do znajdowania niepasujących wierszy
LEFT JOIN klauzula jest bardzo przydatna, gdy chcesz znaleźć wiersze w tabeli, która nie ma pasującego wiersza z innej tabeli.,”>