Summary: I denne tutorial lærer du, hvordan du bruger RIGHT OUTER JOIN i Oracle til at sammenføje to eller flere tabeller.

Oversigt over RIGHT OUTER JOIN i Oracle

Sæt, at vi har to tabeller T1 og T2, så viser følgende erklæring, hvordan du føjer disse to tabeller ved hjælp af RIGHT OUTER JOIN-klausulen i Oracle:

I denne erklæring er T1 og T2 henholdsvis den venstre og højre tabel.

Nøgleordet OUTER er valgfrit, derfor er RIGHT OUTER JOIN og RIGHT JOIN det samme.

Her er, hvordan RIGHT OUTER JOIN fungerer.

Hver række fra tabellen T1 sammenlignes med rækker fra tabellen T2:

  • Hvis et par rækker opfylder join-prædikatet, kombineres kolonneværdierne i begge rækker til en resultatrække, som derefter indgår i resultatmængden.
  • Hvis en række i T2-tabellen ikke passer til nogen række i T1-tabellen, kombineres kolonneværdierne fra rækken i T2-tabellen med en NULL-værdi for hver kolonne i rækken fra T1-tabellen for at danne en resultatrække, som derefter også indgår i resultatmængden.

Med andre ord returnerer et right outer join alle rækker fra den højre tabel og også de matchende rækker fra den venstre tabel.

Oracle RIGHT OUTER JOIN eksempler

Vi vil bruge tabellerne orders og employees i eksempeldatabasen til demonstrationen:

I dette diagram er en sælger ansvarlig for en eller flere salgsordrer. Nogle salgsordrer kan dog ikke være ansvarlige for nogen sælger.

Det følgende eksempel henter alle sælgere og deres eventuelle salgsordrer:

Resultatet omfatter alle medarbejdere, hvis stillingsbetegnelse er Sales Representative, og deres ordrer.

Hvis en sælger ikke er ansvarlig for nogen salgsordre, f.eks. Alice Wells, Charlotte Webb, fyldes kolonnerne order_id og status med NULL-værdier.

Oracle RIGHT OUTER JOIN med USING-klausul

I lighed med andre sammenføjninger, f.eks. INNER JOIN, LEFT JOIN, kan du bruge USING-klausulen til at angive, hvilken kolonne der skal testes for lighed, når du sammenføjer tabeller.

Det følgende illustrerer syntaksen for RIGHT OUTER JOIN med USING-klausulen:

I denne forespørgsel skal de kolonner, der er anført i USING-klausulen, være præsenteret i både T1– og T2-tabellerne.

Den følgende erklæring svarer til ovenstående:

Den følgende erklæring viser, hvordan man bruger RIGHT OUTER JOIN med USING-klausulen:

I dette eksempel er alle kunder med i resultatmængden. Hvis en kunde ikke har en salgsordre, fyldes kolonnerne order_id og status med NULL-værdier.

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

Den følgende anvisning henter medarbejder- og ordredata for sælger id 57.

Den følgende anvisning placerer betingelsen i WHERE-klausulen i stedet for ON-klausulen:

Søgningen returnerede alle medarbejdere, men kun medarbejder id 57 havde de relaterede ordredata.

En bemærkning om, at med hensyn til INNER JOIN, har betingelsen er placeret i ON-klausulen den samme effekt, som den er placeret i WHERE-klausulen.

I denne vejledning har du lært at bruge RIGHT OUTER JOIN i Oracle til at forespørge data fra flere tabeller.

  • Har denne vejledning været nyttig?
  • JaNej

admin

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.

lg