Millised on erinevused LEFT JOIN ja RIGHT JOIN vahel SQL-is?
sobes.tech AI
Vastus AI-lt
LEFT JOIN tagastab kõik read vasakust (esimesest) tabelist ja vastavad read paremast (teisest) tabelist. Kui paremas tabelis puuduvad vasted, sisaldab tulemus NULL-i parema tabeli veergude jaoks.
RIGHT JOIN tagastab kõik read paremast (teisest) tabelist ja vastavad read vasakust (esimesest) tabelist. Kui vasakus tabelis puuduvad vasted, sisaldab tulemus NULL-i vasaku tabeli veergude jaoks.
Peamine erinevus seisneb selles, millist tabelit peetakse "täielikuks", st millisest tabelist tagastatakse kõik read sõltumata vastete olemasolust teises tabelis.
SQL näide:
Tabel TableA:
| ID | VäärtusA |
|---|---|
| 1 | A1 |
| 2 | A2 |
| 3 | A3 |
Tabel TableB:
| ID | VäärtusB |
|---|---|
| 2 | B2 |
| 3 | B3 |
| 4 | B4 |
LEFT JOIN:
SELECT *
FROM TableA
LEFT JOIN TableB ON TableA.ID = TableB.ID;
LEFT JOIN tulemus:
| ID (TableA-st) | VäärtusA | ID (TableB-st) | VäärtusB |
|---|---|---|---|
| 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 tulemus:
| ID (TableA-st) | VäärtusA | ID (TableB-st) | VäärtusB |
|---|---|---|---|
| 2 | A2 | 2 | B2 |
| 3 | A3 | 3 | B3 |
| NULL | NULL | 4 | B4 |
LEFT JOIN ja RIGHT JOIN saab sageli vahetada, muutes tabelite järjekorda: A LEFT JOIN B on võrdne B RIGHT JOIN A.