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 tabelul T1, valorile coloanelor din rândul din tabelul T2 se combină cu o valoare NULL pentru fiecare coloană a rândului din tabelul T1 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

admin

Lasă un răspuns

Adresa ta de email nu va fi publicată.

lg