Samenvatting: in deze tutorial leert u hoe u de RIGHT OUTER JOIN
in Oracle kunt gebruiken om twee of meer tabellen samen te voegen.
Overzicht van RIGHT OUTER JOIN in Oracle
Voorstel dat we twee tabellen T1
en T2
hebben, dan laat het volgende statement zien hoe we deze twee tabellen kunnen joinen met behulp van de RIGHT OUTER JOIN
-clausule in Oracle:
In dit statement zijn T1
en T2
respectievelijk de linker en de rechter tabel.
Het OUTER
sleutelwoord is optioneel en daarom zijn RIGHT OUTER JOIN
en RIGHT JOIN
hetzelfde.
Hier ziet u hoe de RIGHT OUTER JOIN
werkt.
Elke rij uit de T1
tabel wordt vergeleken met rijen uit de T2
tabel:
- Als een paar rijen voldoet aan het join predicaat, worden de kolomwaarden van beide rijen gecombineerd tot een resultaatrij die vervolgens in de resultatenreeks wordt opgenomen.
- In het geval dat een rij in de tabel
T2
met geen enkele rij in de tabelT1
overeenkomt, worden de kolomwaarden van de rij van de tabelT2
gecombineerd met een NULL-waarde voor elke kolom van de rij van de tabelT1
om de resultaatrij te maken, die vervolgens ook in de resultatenreeks wordt opgenomen.
Met andere woorden, een right outer join retourneert alle rijen uit de rechtertabel en ook de overeenkomende rijen uit de linkertabel.
Oracle RIGHT OUTER JOIN examples
We zullen de tabellen orders
en employees
in de voorbeelddatabase gebruiken voor de demonstratie:
In dit schema heeft een verkoper de leiding over een of meer verkooporders. Het is echter mogelijk dat sommige verkooporders aan geen enkele verkoper zijn toegewezen.
Het volgende voorbeeld zoekt alle verkopers en hun eventuele verkooporders op:
Het resultaat bevat alle werknemers met functietitel Sales Representative
en hun orders.
Als een verkoper niet verantwoordelijk is voor een verkooporder zoals Alice Wells
, Charlotte Webb
, worden de kolommen order_id
en status
gevuld met NULL-waarden.
Oracle RIGHT OUTER JOIN met USING-clausule
Gelijk aan andere joins zoals INNER JOIN
, LEFT JOIN
, kunt u de USING
-clausule gebruiken om aan te geven welke kolom moet worden getest op gelijkheid wanneer tabellen worden samengevoegd.
Het volgende illustreert de syntaxis van de RIGHT OUTER JOIN
met de USING
-clausule:
In deze query moeten de kolommen die in de USING
-clausule worden vermeld, voorkomen in zowel de T1
– als de T2
-tabellen.
De volgende verklaring is gelijkwaardig aan de bovenstaande:
De volgende verklaring laat zien hoe de RIGHT OUTER JOIN
met de USING
-clausule moet worden gebruikt:
In dit voorbeeld worden alle klanten in de resultatenreeks opgenomen. Als een klant geen verkooporder heeft, worden de kolommen order_id
en status
gevuld met NULL-waarden.
Oracle RIGHT JOIN: voorwaarde in ON- vs. WHERE-clausule
Het volgende statement verkrijgt de werknemer- en ordergegevens van de verkoper id 57.
De volgende verklaring plaatst de voorwaarde in de WHERE
-clausule in plaats van in de ON
-clausule:
De query leverde alle werknemers op, maar alleen de werknemer met id 57 had de bijbehorende ordergegevens.
Met betrekking tot de INNER JOIN
heeft het plaatsen van de voorwaarde in de ON
-clausule hetzelfde effect als het plaatsen ervan in de WHERE
-clausule.
In deze zelfstudiegids hebt u geleerd hoe u de RIGHT OUTER JOIN
in Oracle kunt gebruiken om gegevens uit meerdere tabellen op te vragen.
- Was deze zelfstudiegids nuttig?
- JaNee