SQL INNER JOIN – Spojování tabulek

SQL INNER JOIN vytváří relaci mezi 2 tabulkami. Výsledkem jsou pouze ty záznamy, kde dojde ke splnění podmínky v ON klauzuli současně pro levou (A) i pravou (B) tabulku.

SQL inner join

Syntaxe SQL INNER JOIN:

/*JOIN je ekvivalentní s INNER JOIN*/
SELECT sloupce
FROM Tabulka_A
JOIN Tabulka_B
ON TabulkaA.sloupec=
TabulkaB.sloupec

Příklad v praxi

Princip spojování tabulek si ukážeme na příkladu s fotbalovými týmy. Mějme 2 tabulky, prohlédněte si je:

  • Fotbalove_tymy (ID, Tym, Id_mesto) – tabulka se seznamem fotbalových týmů
  • Mesta (ID, Nazev_mesta) – tabulka s městy
fotbalove-tymy-priklad

Vstupní data

Úkolem bude zobrazit si seznam fotbalových týmů a k nim domácí město. Skript bude vypadat takto:

SELECT Fotbalove_tymy.ID, Fotbalove_tymy.Tym, Mesto.Mesto
FROM Fotbalove_tymy
INNER JOIN Mesto
ON Fotbalove_tymy.Id_Mesto=Mesto.Id

Vytváříme relaci mezi tabulkami. Podmínku, na základě které se nám záznamy v obou tabulkách spojí leží v ON klauzuli (Fotbalove_tymy.Id_Mesto=Mesto.Id).

inner-join-final

Výsledek po použití inner join

Ve výsledku nemáme všechny fotbalové týmy uvedené v tabulce Fotbalove_tymy. Chybí tým Brno, protože v tomto případě nebylo nalezeno ID=0 v tabulce s městy. Nebyla tedy splněna podmínka pro pravou (B) tabulku s městy z ON klauzule a Brno tak vypadává z výsledku.

Reagovat na příspěvek