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.