Articles

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