Podsumowanie: w tym samouczku dowiesz się o klauzuli SQL Server LEFT JOIN
I jak jej używać do zapytań o dane z wielu tabel.
Wprowadzenie do SQL Server LEFT JOIN klauzula
klauzulaLEFT JOIN
umożliwia odpytywanie danych z wielu tabel. Zwraca wszystkie wiersze z lewej tabeli i pasujące wiersze z prawej tabeli. Jeśli nie znaleziono pasujących wierszy w prawej tabeli, używane są NULL
.,
poniżej przedstawiono sposób łączenia dwóch tabel T1 i T2 przy użyciu klauzuli LEFT JOIN
:
Code language: SQL (Structured Query Language) (sql)
w tej składni T1 i T2 są odpowiednio lewą i prawą tabelą.
dla każdego wiersza tabeli T1 zapytanie porównuje go ze wszystkimi wierszami tabeli T2. Jeśli para wierszy spowoduje, że predykat join zostanie oceniony do TRUE
, wartości kolumn z tych wierszy zostaną połączone, tworząc nowy wiersz, który następnie zostanie włączony do zestawu wyników.,
Jeśli wiersz z lewej tabeli (T1) nie ma pasującego wiersza z tabeli T2, zapytanie łączy wartości kolumn z lewej tabeli z NULL
dla każdej wartości kolumny z prawej tabeli.
w skrócie,LEFT JOIN
klauzula zwraca wszystkie wiersze z lewej tabeli (T1) i pasujące wiersze lubNULL
wartości z prawej tabeli (T2).
poniżej przedstawiono LEFT JOIN
dwóch tabel T1(1, 2, 3) i T2(A, B, C)., LEFT JOIN
dopasuje wiersze z tabeli T1 do wierszy z tabeli T2 za pomocą wzorców:
na tej ilustracji żaden wiersz z tabeli T2 nie pasuje wiersz 1 z tabeli T1 stosuje się zatem null. Wiersze 2 i 3 z tabeli T1 pasują odpowiednio do wierszy A i B z tabeli T2.,
SQL Server LEFT JOIN przykład
zobacz następujące products
I order_items
tabele:
każdy element zamówienia obejmuje jeden produkt. Połączenie między order_items
a products
tabel jest product_id
kolumna.,
poniższe polecenie używa klauzuli LEFT JOIN
do zapytania danych z tabel products
I order_items
:
jak widać wyraźnie z zestawu wyników, lista NULL
w kolumnie order_id
wskazuje, że odpowiednie produkty nie zostały jeszcze sprzedane żadnemu klientowi.
można użyć klauzuliWHERE
, aby ograniczyć zestaw wyników., Poniższe zapytanie zwraca produkty, które nie pojawiają się w żadnym zamówieniu sprzedaży:
jak zawsze, SQL Server przetwarza klauzulę WHERE
po LEFT JOIN
,
The following example shows how to join three tables: production.products
, sales.orders
, and sales.order_items
using the LEFT JOIN
clauses:
Here is the output:
SQL Server LEFT JOIN: conditions in ON vs., Gdzie klauzula
następujące zapytanie znajduje produkty, które należą do ID zamówienia 100:
przenieśmy warunek order_id = 100
do ON
klauzula:
zapytanie zwróciło wszystkie produkty, ale tylko zamówienie o ID 100 zawiera powiązane informacje o produkcie.,
zauważ, że dla klauzuliINNER JOIN
warunek w klauzuliON
jest funkcjonalnie równoważny, jeśli jest umieszczony w klauzuliWHERE
.
w tym samouczku nauczyłeś się używać klauzuli SQL Server LEFT JOIN
do pobierania danych z wielu powiązanych tabel.
Dodaj komentarz