SQL LEFT JOIN (Polski)
Podsumowanie: w tym samouczku przedstawimy Ci inny rodzaj połączeń o nazwie SQL LEFT JOIN, który pozwala na pobieranie danych z wielu tabel.
Wprowadzenie do klauzuli SQL LEFT JOIN
w poprzednim samouczku nauczyłeś się o wewnętrznym join, które zwraca wiersze, jeśli w obu tabelach jest co najmniej jeden wiersz, który odpowiada warunkowi join. Klauzula INNER join eliminuje wiersze, które nie pasują do wierszy drugiej tabeli.,
lewe połączenie zwraca jednak wszystkie wiersze z lewej tabeli, niezależnie od tego, czy w prawej tabeli znajduje się pasujący wiersz.
Załóżmy, że mamy dwie tabele A I B. tabela A ma cztery wiersze 1, 2, 3 i 4. Tabela B zawiera również cztery wiersze 3, 4, 5, 6.
kiedy połączymy tabelę a z tabelą B, wszystkie wiersze w tabeli a (lewa tabela) są zawarte w zestawie wyników niezależnie od tego, czy w tabeli B znajduje się pasujący wiersz.
w SQL używamy następującej składni, aby połączyć tabelę A z tabelą B.,
lewa klauzula JOIN pojawia się po klauzuli FROM. Warunek następujący po słowie kluczowym ON nazywa się warunek join B.n = A.n
SQL LEFT JOIN examples
SQL LEFT JOIN two tables examples
spójrzmy na tabele countries
I locations
.
każda lokalizacja należy do jednego i tylko jednego kraju, podczas gdy każdy kraj może mieć zero lub więcej lokalizacji., Relacja między tabelami krajów i lokalizacji jest jeden do wielu.
kolumna country_id w tabeli locations jest kluczem obcym, który łączy się z kolumną country_id w tabeli countries.
aby sprawdzić nazwy krajów USA, WIELKIEJ BRYTANII i Chin, należy użyć następującego oświadczenia.,0bc ” >
Zobacz go w akcji
poniższe zapytanie pobiera lokalizacje znajdujące się w USA, WIELKIEJ BRYTANII i Chinach:
zobacz go w akcji
teraz używamy lewej klauzuli join, aby połączyć tabelę krajów z tabelą lokalizacji jako następujące zapytanie:
zobacz go w akcji
warunek w klauzuli where stosuje się tak, że oświadczenie pobiera tylko dane z wierszy w USA, Wielkiej Brytanii i Chinach.,
ponieważ używamy klauzuli LEFT JOIN, wszystkie wiersze, które spełniają warunek w klauzuli WHERE tabeli krajów są zawarte w zbiorze wyników.
dla każdego wiersza w tabeli krajów klauzula JOIN po lewej stronie znajduje pasujące wiersze w tabeli lokalizacje.
Jeśli znaleziono co najmniej jeden pasujący wiersz, silnik bazy danych łączy dane z kolumn pasujących wierszy w obu tabelach.
w przypadku, gdy nie znaleziono pasującego wiersza, np. z country_id CN, wiersz w tabeli krajów jest zawarty w zestawie wyników, a wiersz w tabeli lokalizacji jest wypełniony wartościami NULL.,
ponieważ niepasujące wiersze w prawej tabeli są wypełnione wartościami NULL, można zastosować klauzulę LEFT JOIN do wierszy miss-match między tabelami.
na przykład, aby znaleźć kraj, który nie ma żadnych lokalizacji w tabeli lokalizacji, użyj następującego zapytania:
Zobacz go w akcji
SQL LEFT JOIN 3 tabele przykład
zobacz następujące tabele: regiony, kraje i lokalizacje.,
jeden region może mieć zero lub wiele krajów, podczas gdy każdy kraj znajduje się w jednym regionie. Relacja między krajami i regionami jest jedna do wielu. Kolumna region_id w tabeli krajów jest łącznikiem między tabelą krajów i regionów.,
poniższa instrukcja pokazuje, jak połączyć 3 tabele: regiony, kraje i lokalizacje:
Zobacz to w akcji
teraz powinieneś dobrze zrozumieć, jak działa klauzula SQL LEFT JOIN i wiedzieć, jak ją zastosować lewa klauzula join do odpytywania danych z wielu tabel.
- czy ten tutorial był pomocny ?
- YesNo