sammanfattning: i den här handledningen lär du dig hur du använder Oracle LEFT JOIN
– klausulen för att fråga data från flera tabeller.
introduktion till Oracle LEFT JOIN clause
följande uttalande illustrerar syntaxen för LEFT JOIN
– klausulen när du ansluter till två tabeller T1
och T2
:
i den här frågan T1
är den vänstra tabellen och T2
är den högra tabellen.,
frågan jämför varje rad i tabellenT1
med rader i tabellenT2
.
om ett par rader från både T1
och T2
– tabellerna uppfyller kopplingspredikatet, kombinerar frågan kolumnvärden från rader i båda tabellerna och innehåller den här raden i resultatuppsättningen.,
om en rad i tabellenT1
inte har någon matchande rad i tabellenT2
kombinerar frågan kolumnvärden från raden i tabellenT1
med ett nollvärde för varje kolumn i den högra tabellen som visas i klausulenSELECT
.
med andra ord returnerar en vänster koppling alla rader från den vänstra tabellen och matchande rader från den högra tabellen.,
Oracle LEFT JOIN examples
se följande orders
och employees
tabeller i provdatabasen:
tabellen lagrar data för försäljningsorderhuvud. Den har kolumnen salesman_id
som refererar till kolumnen employee_id
I tabellen employees
.
kolumnensalesman_id
är null-able, vilket innebär att inte alla beställningar har en försäljningsanställd som ansvarar för beställningarna.,
följande uttalande hämtar alla order och anställda data från bådeorders
ochemployees
tabeller:
följande bild illustrerar resultatet:
>
resultatet innehåller alla rader från tabellen orders
. För raderna i tabellenorders
som inte har en matchande rad i tabellenemployees
används NULL-värden.,
Oracle LEFT JOIN – join multiple tables
följande uttalande använderLEFT JOIN
klausuler för att gå med i tre tabeller:orders
,employees
ochcustomers
:
Oracle left join med användning av klausul
USING
anger vilken kolumn som ska testas för jämlikhet när du går med i tabeller., Följande visar syntaxen för LEFT JOIN
med USING
– klausulen:
i detta uttalande måste kolumnerna i USING
– klausulen presenteras i både T1
och T1
tabeller.,
uttalandet som använder USING
– klausulen ovan motsvarar följande uttalande som använder ON
– klausulen:
följande uttalande visar hur du använder LEFT JOIN
med USING
statement:
detta uttalande hämtade alla kunder och deras order., För kunder som inte har lagt några beställningar används null för kolumnerna i ordertabellen som visas iSELECT
– klausulen, som är order_id
, status
och order_date
.
villkor i On vs WHERE klausul
följande uttalande får order och säljare data i ordern 58.,
Nu om du flyttar villkoret från klausulen WHERE
till klausulen ON
I klausulen LEFT JOIN
:
i det här fallet returnerar frågan alla beställningar, men bara ordern 58 hade säljarens data associerade med den.,
Observera att för den inre kopplingen har villkoret placerat iON
samma effekt som det placeras iWHERE
– klausulen.
i den här handledningen har du lärt dig hur du använder Oracle LEFT JOIN
– klausulen för att hämta data från flera tabeller.
- var den här handledningen till hjälp?
- YesNo