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.