Sobes.tech
Middle

Jaké typy JOIN existují v SQL a v čem se liší LEFT JOIN, RIGHT JOIN a INNER JOIN?

sobes.tech AI

Odpověď od AI

V SQL existuje několik typů JOIN, které umožňují spojovat řádky ze dvou tabulek podle určité podmínky:

  • INNER JOIN — vrací pouze řádky, které mají shody v obou tabulkách.
  • LEFT JOIN (LEFT OUTER JOIN) — vrací všechny řádky z levé tabulky a odpovídající řádky z pravé tabulky. Pokud shoda chybí, pole pravé tabulky bude NULL.
  • RIGHT JOIN (RIGHT OUTER JOIN) — naopak, vrací všechny řádky z pravé tabulky a odpovídající z levé, s NULL tam, kde shoda chybí.

Příklad:

Tabulka A:

id jméno
1 Alice
2 Bob

Tabulka B:

id město
1 Londýn
3 Berlín
  • INNER JOIN podle id vrátí pouze id=1 (Alice a Londýn).
  • LEFT JOIN vrátí:
    • id=1 (Alice, Londýn)
    • id=2 (Bob, NULL)
  • RIGHT JOIN vrátí:
    • id=1 (Alice, Londýn)
    • id=3 (NULL, Berlín)

Tímto způsobem LEFT a RIGHT JOIN zachovávají všechny řádky z jedné tabulky a doplňují je daty z druhé, zatímco INNER JOIN zachovává pouze shody.