Strânsul SQL RIGHT JOIN Include toate rândurile din tabelul din dreapta și cele care se potrivesc din stânga. Pentru cele care nu se potrivesc din dreapta, se returnează NULL în coloanele corespunzătoare.
Aceasta este diferența esențială între un SQL RIGHT JOIN și INNER JOIN. În timp ce o îmbinare interioară returnează doar rândurile care corespund condiției de îmbinare, într-o îmbinare exterioară dreaptă, se garantează că toate rândurile din tabelele din dreapta sunt incluse în rezultat.
Verificați această ilustrație:
Verificați rezultatele pentru Fred și observați că nu există niciun Produs corespunzător, acesta este NULL. De asemenea, the nu este inclus în rezultat.
O altă denumire pentru right join este Right outer join.
Forma generală RIGHT JOIN este:
SELECT table1.column1, table2.column2, … FROM table1 RIGHT JOIN table2 ON table1.commonColumn = table2.commonColumn
Note:
- În acest exemplu, tabelul2 este tabelul din dreapta și tabelul1 cel din stânga.
- Dacă nu există o corespondență între valorile commonColumn, table1.column1 returnează NULL
SQL RIGHT JOIN Exemplu
Nu fiecare persoană din baza de date AdventureWorks este un angajat. Haideți să enumerăm fiecare persoană și o parte din datele de angajare ale acesteia, dacă există. Vom folosi un RIGHT JOIN pentru a face acest lucru.
Rețineți că este un RIGHT JOIN, deoarece tabelul de persoane, care are fiecare rând pe care dorim să îl returnăm, se află în partea dreaptă a operatorului JOIN.
Uită-te la rezultate și observă că există NULL-uri pentru unele persoane. Acest lucru se datorează faptului că nu există intrări corespunzătoare în tabelul Employee. RIGHT JOIN funcționează așa cum s-a anunțat, returnând toate corespondențele și un NULL în cazul în care nu există.
Puncte importante:
Când lucrați cu RIGHT JOIN țineți cont de faptul că potrivirea dvs. de la un tabel la altul poate corespunde mai multor rânduri. Adică, rezultatul dvs. poate avea mai multe rânduri în rezultat decât aveți în oricare dintre tabele.
Când coloanele nu se potrivesc, se interoghează rândul din dreapta și NULL pentru coloanele din tabelul din stânga…