Sobes.tech
Junior

Mi a különbség a LEFT JOIN és a RIGHT JOIN között SQL-ben?

sobes.tech MI

Válasz az MI-től

A LEFT JOIN visszaadja a bal (első) tábla összes sorát és a jobb (második) tábla megfelelő sorait. Ha nincs egyezés a jobb táblában, az eredmény NULL értéket tartalmaz a jobb tábla oszlopaira.

A RIGHT JOIN visszaadja a jobb (második) tábla összes sorát és a bal (első) tábla megfelelő sorait. Ha nincs egyezés a bal táblában, az eredmény NULL értéket tartalmaz a bal tábla oszlopaira.

A fő különbség az, hogy melyik tábla számít "teljesnek", azaz melyikből kerül visszaadásra minden sor függetlenül attól, hogy van-e egyezés a másik táblában.

SQL példák:

TáblaA:

ID ÉrtékA
1 A1
2 A2
3 A3

TáblaB:

ID ÉrtékB
2 B2
3 B3
4 B4

LEFT JOIN:

SELECT *
FROM TáblaA
LEFT JOIN TáblaB ON TáblaA.ID = TáblaB.ID;

Eredmény:

ID (TáblaA-ból) ÉrtékA ID (TáblaB-ból) ÉrtékB
1 A1 NULL NULL
2 A2 2 B2
3 A3 3 B3

RIGHT JOIN:

SELECT *
FROM TáblaA
RIGHT JOIN TáblaB ON TáblaA.ID = TáblaB.ID;

Eredmény:

ID (TáblaA-ból) ÉrtékA ID (TáblaB-ból) ÉrtékB
2 A2 2 B2
3 A3 3 B3
NULL NULL 4 B4

A LEFT JOIN és RIGHT JOIN gyakran cserélhető egymással a táblák sorrendjének megváltoztatásával: A LEFT JOIN B ekvivalens B RIGHT JOIN A-val.