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