Sobes.tech
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.