Rezumat: în acest tutorial, veți învăța cum să folosiți RIGHT OUTER JOIN
în Oracle pentru a uni două sau mai multe tabele.
Vizualizare generală a RIGHT OUTER JOIN în Oracle
Să presupunem că avem două tabele T1
și T2
, următoarea instrucțiune arată cum să alăturăm aceste două tabele folosind clauza RIGHT OUTER JOIN
în Oracle:
În această instrucțiune, T1
și T2
sunt tabelul din stânga și, respectiv, tabelul din dreapta.
Cuvântul cheie OUTER
este opțional, prin urmare, RIGHT OUTER JOIN
și RIGHT JOIN
sunt identice.
Iată cum funcționează RIGHT OUTER JOIN
.
Care rând din tabelul T1
este comparat cu rândurile din tabelul T2
:
- Dacă o pereche de rânduri satisface predicatul de îmbinare, valorile coloanelor din ambele rânduri sunt combinate pentru a obține un rând rezultat care este apoi inclus în setul de rezultate.
- În cazul în care un rând din tabelul
T2
nu se potrivește cu nici un rând din tabelulT1
, valorile coloanelor din rândul din tabelulT2
se combină cu o valoare NULL pentru fiecare coloană a rândului din tabelulT1
pentru a obține rândul rezultat care este apoi inclus, de asemenea, în setul de rezultate.
Cu alte cuvinte, o îmbinare exterioară dreaptă returnează toate rândurile din tabelul din dreapta și, de asemenea, rândurile corespunzătoare din tabelul din stânga.
Exemple de RIGHT OUTER JOIN de la Oracle
Pentru demonstrație vom folosi tabelele orders
și employees
din baza de date de probă:
În această diagramă, un vânzător este responsabil de una sau mai multe comenzi de vânzare. Cu toate acestea, este posibil ca unele comenzi de vânzări să nu fie în sarcina niciunui vânzător.
Exemplul următor recuperează toți vânzătorii și comenzile de vânzări ale acestora, dacă există:
Rezultatul include toți angajații a căror denumire a postului este Sales Representative
și comenzile acestora.
Dacă un vânzător nu se ocupă de nicio comandă de vânzări, cum ar fi Alice Wells
, Charlotte Webb
, coloanele order_id
și status
sunt completate cu valori NULL.
Oracle RIGHT OUTER JOIN cu clauza USING
Similar cu alte îmbinări, cum ar fi INNER JOIN
, LEFT JOIN
, puteți utiliza clauza USING
pentru a specifica ce coloană să testați pentru egalitate atunci când îmbinați tabele.
Cele ce urmează ilustrează sintaxa RIGHT OUTER JOIN
cu clauza USING
:
În această interogare, coloanele enumerate în clauza USING
trebuie să fie prezentate în ambele tabele T1
și T2
.
Explicația următoare este echivalentă cu cea de mai sus:
Explicația următoare demonstrează modul de utilizare a RIGHT OUTER JOIN
cu clauza USING
:
În acest exemplu, toți clienții sunt incluși în setul de rezultate. Dacă un client nu are o comandă de vânzare, coloanele order_id
și status
sunt completate cu valori NULL.
Oracle RIGHT JOIN: condiție în clauza ON vs. WHERE
Următoarea instrucțiune obține datele despre angajat și comandă ale vânzătorului id 57.
Explicația următoare plasează condiția în clauza WHERE
în loc de clauza ON
:
Interogarea a returnat toți angajații, dar numai angajatul id 57 avea datele aferente comenzii.
Rețineți că, în ceea ce privește INNER JOIN
, condiția este plasată în clauza ON
are același efect ca și cea plasată în clauza WHERE
.
În acest tutorial, ați învățat cum să utilizați RIGHT OUTER JOIN
în Oracle pentru a interoga date din mai multe tabele.
- A fost util acest tutorial?
- DaNu