Shrnutí: v tomto tutoriálu, se dozvíte o SQL Server LEFT JOIN klauzule a jak používat to, aby data dotazu z více tabulek.

Úvod do klauzule levého spojení SQL Serveru

klauzuleLEFT JOIN umožňuje dotazovat data z více tabulek. Vrací všechny řádky z levé tabulky a odpovídající řádky z pravé tabulky. Pokud se v pravé tabulce nenacházejí žádné odpovídající řádky, použije se NULL.,

následující příklad ilustruje, jak připojit dvě tabulky T1 a T2 pomocí LEFT JOIN článek:

Code language: SQL (Structured Query Language) (sql)

V této syntaxi, T1 a T2 jsou levé a pravé tabulky v tomto pořadí.

pro každý řádek z tabulky T1 jej dotaz porovnává se všemi řádky z tabulky T2. Pokud pár řádků způsobí, že predikát spojení vyhodnotit, do TRUE, ve sloupci hodnot z těchto řádků budou kombinovány k vytvoření nové řady, které pak zahrnuty v sadě výsledků.,

Pokud je řádek v levé tabulce (T1), nemá žádný odpovídající řádek z tabulky T2, dotaz kombinuje hodnoty sloupce řádku od levé tabulce s NULL pro každý sloupec hodnoty z pravé tabulka.

stručně řečeno, LEFT JOIN klauzule vrátí všechny řádky z levé tabulka (T1) a odpovídající řádky nebo NULL hodnoty z pravé tabulky (T2).

následující ilustruje LEFT JOIN dvou tabulek T1(1, 2, 3) a T2(A, B, C)., LEFT JOIN se bude shodovat řádky z tabulky T1 s řádky z T2 tabulky pomocí vzorce:

Na tomto obrázku, žádný řádek z T2 tabulce odpovídá 1 řádek z tabulky T1, proto je NULL, je použit. Řádky 2 a 3 z tabulky T1 odpovídají řádkům a A B z tabulky T2.,

SQL Server left JOIN příklad

Viz následující products order_items tabulky:

Všechny prodejní objednávky položka zahrnuje jeden produkt. Spojení meziorder_items aproducts tabulkami je sloupecproduct_id.,

následující prohlášení používá LEFT JOIN klauzule dotazu data od products order_items stoly:

Jak budete jasně vidět z výsledku nastavit seznam NULL order_id sloupec označuje, že odpovídající výrobky nebyly prodávány na každého zákazníka.

klauzuliWHERE je možné použít k omezení sady výsledků., Následující dotaz vrací produktů, které se neobjevují v žádné prodejní objednávky:

Jako vždy, SQL Server procesy WHERE doložka po LEFT JOIN klauzule.,

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., Tam, KDE ustanovení

následující dotaz najde produkty, které patří do řádu id 100:

Pojďme se přesunout podmínku order_id = 100 ON článek:

dotaz vráceny všechny produkty, ale pouze na objednávku s id 100 se související produktové informace.,

Všimněte si, že pro INNER JOIN klauzule, stav v ON klauzule je funkčně rovnocenné, pokud je umístěn v WHERE klauzule.

v tomto tutoriálu jste se naučili používat klauzuli SQL Server LEFT JOIN k načtení dat z více souvisejících tabulek.