SQL LEFT JOIN

Příkaz LEFT JOIN v SQL vytváří relaci mezi 2 tabulkami a vrací všechny záznamy z levé tabulky(A) spolu se záznamy, které jsou nalezeny i v pravé tabulce (B). Záznamy které nebyly nalezeny v pravé tabulce získají hodnotu NULL.

SQL Left join

Syntaxe:

/*LEFT JOIN je ekvivalentní s LEFT OUTER JOIN (Tabulka A = levá; Tabulka B = pravá)*/
SELECT sloupce
FROM Tabulka_A LEFT JOIN Tabulka_B
ON TabulkaA.sloupec=TabulkaB.sloupec

Ukázka LEFT JOIN

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

Zobrazíme 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 LEFT JOIN Mesto
ON Fotbalove_tymy.Id_Mesto=Mesto.Id

Co děláme? 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).

Left-join-result

Výsledek

Ve výsledku máme narozdíl od INNER JOIN všechny fotbalové týmy uvedené v tabulce Fotbalove_tymy. Brnenský tým je zobrazen (levá tabulka), ale protože neexistuje záznam v tabulce s městy s město_id=0 je hodnota mesto = NULL

Reagovat na příspěvek