sammanfattning: i den här handledningen kommer du att lära dig om SQL ServerLEFT JOIN
– klausulen och hur du använder den för att fråga data från flera tabeller.
introduktion till SQL Server LEFT JOIN clause
LEFT JOIN
tillåter dig att fråga data från flera tabeller. Den returnerar alla rader från den vänstra tabellen och matchande rader från den högra tabellen. Om inga matchande rader hittades i den högra tabellen används NULL
.,
följande visar hur man går med i två tabeller T1 och T2 med LEFT JOIN
– klausulen:
Code language: SQL (Structured Query Language) (sql)
i denna syntax är T1 och T2 de vänstra respektive högra tabellerna.
för varje rad från T1-tabellen jämför frågan den med alla rader från T2-tabellen. Om ett par rader får join-predikatet att utvärdera till TRUE
kommer kolumnvärdena från dessa rader att kombineras för att bilda en ny rad som sedan ingår i resultatuppsättningen.,
om en rad från den vänstra tabellen (T1) inte har någon matchande rad från T2-tabellen, kombinerar frågan kolumnvärden för raden från den vänstra tabellen med NULL
för varje kolumnvärden från den högra tabellen.
kort sagt returnerarLEFT JOIN
alla rader från den vänstra tabellen (T1) och matchande rader ellerNULL
värden från den högra tabellen (T2).
följande illustrerar LEFT JOIN
I två tabeller T1(1, 2, 3) och T2(A, B, C)., LEFT JOIN
matchar rader från T1-tabellen med raderna från T2-tabellen med mönster:
i den här illustrationen matchar ingen rad från T2-tabellen raden 1 från T1-tabellen. Raderna 2 och 3 från T1-tabellen matchar med raderna A respektive B från T2-tabellen.,
SQL Server LEFT JOIN example
se följande products
och order_items
tabeller:
varje försäljningsorderpost innehåller en produkt. – herr talman! Länken mellan tabellernaorder_items
ochproducts
är kolumnenproduct_id
.,
följande uttalande använderLEFT JOIN
– klausulen för att fråga data frånproducts
ochorder_items
tabeller:
som du tydligt ser från resultatuppsättningen visar en lista överNULL
I kolumnenorder_id
att motsvarande produkter ännu inte har sålts till någon kund.
det är möjligt att använda klausulenWHERE
för att begränsa resultatuppsättningen., Följande fråga returnerar produkter som inte visas i någon försäljningsorder:
som alltid bearbetar SQL Server klausulenWHERE
efter klausulenLEFT 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., Där klausul
följande fråga hittar de produkter som tillhör beställnings-id 100:
låt oss flytta villkoret order_id = 100
till klausulen ON
:
frågan returnerade alla produkter men endast beställningen med Id 100 har den tillhörande produktens information.,
Observera att för klausulenINNER JOIN
är villkoret i klausulenON
funktionellt likvärdigt om det placeras i klausulenWHERE
.
i den här handledningen har du lärt dig hur du använder SQL Server LEFT JOIN
– klausulen för att hämta data från flera relaterade tabeller.
Lämna ett svar