Kādas ir atšķirības starp LEFT JOIN un RIGHT JOIN SQL?
sobes.tech AI
Atbilde no AI
LEFT JOIN atgriež visus rindkopas no kreisās (pirmās) tabulas un atbilstošās rindkopas no labās (otrās). Ja labajā tabulā nav atbilstošu ierakstu, rezultāts satur NULL kolonnas no labās tabulas.
RIGHT JOIN atgriež visus rindkopas no labās (otrās) tabulas un atbilstošās rindkopas no kreisās (pirmās). Ja kreisajā tabulā nav atbilstošu ierakstu, rezultāts satur NULL kolonnas no kreisās tabulas.
Galvenā atšķirība ir tā, kura tabula tiek uzskatīta par "pilnu", tas ir, no kuras tabulas tiks atgriezti visi rindkopas neatkarīgi no atbilstības otrajā tabulā.
SQL piemērs:
Tabula TableA:
| ID | VērtībaA |
|---|---|
| 1 | A1 |
| 2 | A2 |
| 3 | A3 |
Tabula TableB:
| ID | VērtībaB |
|---|---|
| 2 | B2 |
| 3 | B3 |
| 4 | B4 |
LEFT JOIN:
SELECT *
FROM TableA
LEFT JOIN TableB ON TableA.ID = TableB.ID;
LEFT JOIN rezultāts:
| ID (no TableA) | VērtībaA | ID (no TableB) | VērtībaB |
|---|---|---|---|
| 1 | A1 | NULL | NULL |
| 2 | A2 | 2 | B2 |
| 3 | A3 | 3 | B3 |
RIGHT JOIN:
SELECT *
FROM TableA
RIGHT JOIN TableB ON TableA.ID = TableB.ID;
RIGHT JOIN rezultāts:
| ID (no TableA) | VērtībaA | ID (no TableB) | VērtībaB |
|---|---|---|---|
| 2 | A2 | 2 | B2 |
| 3 | A3 | 3 | B3 |
| NULL | NULL | 4 | B4 |
LEFT JOIN un RIGHT JOIN bieži var aizstāt viens ar otru, mainot tabulu kārtību: A LEFT JOIN B ir vienāds ar B RIGHT JOIN A.