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.
Skriv et svar