Care sunt diferențele dintre LEFT JOIN și RIGHT JOIN în SQL?
sobes.tech AI
Răspuns de la AI
LEFT JOIN returnează toate rândurile din tabelul din stânga (primul) și rândurile corespunzătoare din tabelul din dreapta (al doilea). Dacă nu există potriviri în tabelul din dreapta, rezultatul conține NULL pentru coloanele din tabelul din dreapta.
RIGHT JOIN returnează toate rândurile din tabelul din dreapta (al doilea) și rândurile corespunzătoare din tabelul din stânga (primul). Dacă nu există potriviri în tabelul din stânga, rezultatul conține NULL pentru coloanele din tabelul din stânga.
Diferența principală este care tabel este considerat "complet", adică de la care tabel vor fi returnate toate rândurile, indiferent dacă există potriviri în celălalt tabel.
Exemplu în SQL:
Tabelul TabelA:
| ID | ValoareA |
|---|---|
| 1 | A1 |
| 2 | A2 |
| 3 | A3 |
Tabelul TabelB:
| ID | ValoareB |
|---|---|
| 2 | B2 |
| 3 | B3 |
| 4 | B4 |
LEFT JOIN:
SELECT *
FROM TabelA
LEFT JOIN TabelB ON TabelA.ID = TabelB.ID;
Rezultatul LEFT JOIN:
| ID (din TabelA) | ValoareA | ID (din TabelB) | ValoareB |
|---|---|---|---|
| 1 | A1 | NULL | NULL |
| 2 | A2 | 2 | B2 |
| 3 | A3 | 3 | B3 |
RIGHT JOIN:
SELECT *
FROM TabelA
RIGHT JOIN TabelB ON TabelA.ID = TabelB.ID;
Rezultatul RIGHT JOIN:
| ID (din TabelA) | ValoareA | ID (din TabelB) | ValoareB |
|---|---|---|---|
| 2 | A2 | 2 | B2 |
| 3 | A3 | 3 | B3 |
| NULL | NULL | 4 | B4 |
LEFT JOIN și RIGHT JOIN pot fi adesea interschimbabile prin schimbarea ordinii tabelelor în interogare: A LEFT JOIN B este echivalent cu B RIGHT JOIN A.