Middle
Milyen JOIN típusok léteznek SQL-ben, és miben különböznek a LEFT JOIN, RIGHT JOIN és INNER JOIN?
sobes.tech MI
Válasz az MI-től
SQL-ben többféle JOIN típus létezik, amelyek lehetővé teszik két tábla sorainak összekapcsolását egy adott feltétel alapján:
- INNER JOIN — csak azokat a sorokat adja vissza, amelyek mindkét táblában megtalálhatók.
- LEFT JOIN (LEFT OUTER JOIN) — az összes sort a bal oldali táblából és a hozzájuk tartozó, egyező sorokat a jobb oldali táblából. Ha nincs egyezés, a jobb oldali táblában lévő mezők NULL értékűek lesznek.
- RIGHT JOIN (RIGHT OUTER JOIN) — fordítva, az összes sort a jobb oldali táblából és a hozzájuk tartozó, egyező sorokat a bal oldali táblából. Ha nincs egyezés, a bal oldali mezők NULL értékűek lesznek.
Példa:
A táblázat A:
| id | név |
|---|---|
| 1 | Alice |
| 2 | Bob |
B táblázat:
| id | város |
|---|---|
| 1 | London |
| 3 | Berlin |
- INNER JOIN id szerint csak az id=1 (Alice, London) lesz visszaadva.
- LEFT JOIN a következőket adja vissza:
- id=1 (Alice, London)
- id=2 (Bob, NULL)
- RIGHT JOIN a következőket adja vissza:
- id=1 (Alice, London)
- id=3 (NULL, Berlin)
Így a LEFT és RIGHT JOIN megőrzi az egyik táblából az összes sort, és kiegészíti az adatokkal a másik táblából, míg az INNER JOIN csak a megfeleltetéseket tartja meg.