Sammanfattning: I den här handledningen lär du dig hur du använder RIGHT OUTER JOIN i Oracle för att sammanfoga två eller flera tabeller.

Översikt över RIGHT OUTER JOIN i Oracle

Antag att vi har två tabeller T1 och T2, följande uttalande visar hur man förenar dessa två tabeller med hjälp av RIGHT OUTER JOIN-klausulen i Oracle:

I det här uttalandet är T1 och T2 den vänstra respektive den högra tabellen.

Nyckelordet OUTER är valfritt och därför är RIGHT OUTER JOIN och RIGHT JOIN samma.

Här är hur RIGHT OUTER JOIN fungerar.

Varje rad från T1tabellen jämförs med rader från T2tabellen:

  • Om ett par rader uppfyller joinpredikatet kombineras kolumnvärdena i båda raderna till en resultatrad som sedan ingår i resultatmängden.
  • Om en rad i tabellen T2 inte matchar någon rad i tabellen T1 kombineras kolumnvärdena från raden i tabellen T2 med ett NULL-värde för varje kolumn i raden från tabellen T1 för att skapa en resultatrad som då också ingår i resultatmängden.

Med andra ord returnerar en right outer join alla rader från den högra tabellen och även de matchande raderna från den vänstra tabellen.

Oracle RIGHT OUTER JOIN examples

Vi kommer att använda tabellerna orders och employees i exempeldatabasen för demonstrationen:

I det här diagrammet är en försäljare ansvarig för en eller flera försäljningsorder. Vissa försäljningsorder kanske dock inte ansvarar för någon säljare.

Med följande exempel hämtas alla säljare och deras eventuella försäljningsorder:

Resultatet innehåller alla anställda vars arbetstitel är Sales Representative och deras order.

Om en säljare inte ansvarar för någon försäljningsorder som Alice Wells, Charlotte Webb fylls kolumnerna order_id och status med NULL-värden.

Oracle RIGHT OUTER JOIN med USING-klausulen

I likhet med andra sammanfogningar som INNER JOIN, LEFT JOIN kan du använda USING-klausulen för att ange vilken kolumn som ska testas för jämlikhet när du sammanfogar tabeller.

Nedan visas syntaxen för RIGHT OUTER JOIN med USING-klausulen:

I den här frågan måste de kolumner som anges i USING-klausulen presenteras i tabellerna T1 och T2.

Det följande uttalandet är likvärdigt med det ovan:

Det följande uttalandet visar hur man använder RIGHT OUTER JOIN med USING-klausulen:

I det här exemplet ingår alla kunder i resultatmängden. Om en kund inte har någon försäljningsorder fylls kolumnerna order_id och status med NULL-värden.

Oracle RIGHT JOIN: villkor i ON vs. WHERE-klausulen

Följande anvisning hämtar anställd- och orderdata för försäljaren id 57.

Följande uttalande placerar villkoret i WHERE-klausulen istället för ON-klausulen:

Frågan returnerade alla anställda men endast den anställde id 57 hade tillhörande orderdata.

Notera att när det gäller INNER JOIN har villkoret som placeras i ON-klausulen samma effekt som när det placeras i WHERE-klausulen.

I den här handledningen har du lärt dig hur du använder RIGHT OUTER JOIN i Oracle för att fråga efter data från flera tabeller.

  • Var den här handledningen till hjälp?
  • JaNej

admin

Lämna ett svar

Din e-postadress kommer inte publiceras.

lg