Sobes.tech
Junior

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.