SQL - INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL JOIN
V tomto článku věnovaném relačním databázím se podíváme na spojování SQL tabulek a popíšeme si změny mezi JOINy.
INNER JOIN
INNER JOIN je nerozdělitelná vazba - zobrazí se nám jen výsledky, když existuje záznam v obou tabulkách (table1 + table2).
Příklad
SELECT * FROM `table1`
INNER JOIN `table2` ON t1_rel_id = t2_rel_id
LEFT OUTER JOIN
LEFT OUTER JOIN je rozdělitelná vazba - zobrazí se všechny záznamy, které existují v table1 (levá část v SQL, tabulka bez JOIN).
Když záznam v table2 (pravá část SQL - té připojené přes JOIN) nebude existovat, tak se zobrazí hodnota NULL.
Příklad
SELECT * FROM `table1`
LEFT OUTER JOIN `table2` ON t1_rel_id = t2_rel_id
RIGHT OUTER JOIN
RIGHT OUTER JOIN je rozdělitelná vazba - je to opak LEFT OUTER JOIN -> zobrazí se všechny záznamy, které existují v table2 (pravá část SQL - té připojené přes JOIN).
Když záznam v table1 (levá část v SQL, tabulka bez JOIN) nebude existovat, tak se zobrazí hodnota NULL.
Příklad
SELECT * FROM `table1`
RIGHT OUTER JOIN `table2` ON t1_rel_id = t2_rel_id
FULL OUTER JOIN
FULL OUTER JOIN je rozdělitelná vazba - zobrazí se všechny záznamy, které existují v table1 a table2.
Jedná se o kombinaci LEFT OUTER JOIN a RIGHT OUTER JOIN.
Příklad
SELECT * FROM `table1`
FULL JOIN `table2` ON t1_rel_id = t2_rel_id
PS: Doporučuji najít si na internetu Venn diagram, který pochopení JOINů velice usnadní (ten s těmi kružnicemi).