Resumé: i denne tutorial, du vil lære om SQL Server – LEFT JOIN klausul, og hvordan du bruger det til at forespørge på data fra flere tabeller.

Introduktion til SQL Server LEFT JOIN klausul

LEFT JOIN klausul, der giver dig mulighed for at forespørge på data fra flere tabeller. Den returnerer alle rækker fra venstre tabel og de matchende rækker fra højre tabel. Hvis der ikke findes matchende rækker i højre tabel, bruges NULL.,

følgende illustrerer, hvordan til at tilslutte to tabeller T1 og T2 ved brug af LEFT JOIN klausul:

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

I denne syntaks, T1 og T2, er de venstre og højre tabeller hhv.

for hver række fra T1-tabellen sammenligner forespørgslen det med alle rækker fra T2-tabellen. Hvis et par rækker får join-prædikatet til at evaluere til TRUE, kombineres kolonneværdierne fra disse rækker for at danne en ny række, som derefter inkluderes i resultatsættet.,

Hvis en række fra venstre tabel (T1) ikke har nogen matchende række fra T2-tabellen, kombinerer forespørgslen kolonneværdier for rækken fra venstre tabel med NULL for hver kolonneværdier fra højre tabel.

kort sagt returnererLEFT JOIN klausulen alle rækker fra venstre tabel (T1) og matchende rækker ellerNULL værdier fra højre tabel (T2).

følgende illustrerer LEFT JOIN af to tabeller, T1(1, 2, 3) og T2(A, B, C)., LEFT JOIN vil matche rækker fra T1 tabel med rækker fra T2 tabel ved hjælp af mønstre:

I denne illustration, ingen træk fra T2 bordet matcher række 1 fra T1 bordet, derfor, NULL anvendes. Række 2 og 3 fra T1-tabellen matcher henholdsvis række A og B fra T2-tabellen.,

SQL Server LEFT JOIN eksempel

Se følgende: products og order_items tabeller:

den Enkelte salgsordre post omfatter ét produkt. Forbindelsen mellem order_items og products tabeller er product_id kolonne.,

Den følgende sætning bruger LEFT JOIN klausul til at forespørge på data fra products og order_items tabeller:

Som du kan se klart fra det resultat, en liste af NULL order_id kolonne angiver, at den tilsvarende produkter ikke sælges til en kunde endnu.

det er muligt at bruge WHERE for at begrænse resultatsættet., Følgende forespørgsel returnerer produkter, der ikke forekommer i nogen salg for:

Som altid, SQL Server processer WHERE klausul efter LEFT JOIN klausul.,

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., WHERE

følgende forespørgsel finder de produkter, der hører til ordre-id 100:

Lad os flytte den tilstand order_id = 100 til ON klausul:

forespørgslen returneres alle produkter, men kun ordre med id-100 er den tilhørende produkter, information.,

Bemærk, at for INNER JOIN – klausulen er betingelsen i ON – klausulen funktionelt ækvivalent, hvis den er placeret i WHERE – klausulen.

i denne vejledning har du lært, hvordan du bruger s .l Server LEFT JOIN klausul til at hente data fra flere relaterede tabeller.