Junior — Middle
Můžete vysvětlit rozdíly mezi vnitřním spojem a levým spojem v SQL?
sobes.tech AI
Odpověď od AI
Vnitřní spojení (INNER JOIN) vrací pouze řádky, které mají shody v obou tabulkách podle podmínky spojení. Pokud v jedné z tabulek není odpovídající záznam, takový řádek se nezobrazí ve výsledku.
Levé spojení (LEFT JOIN) vrací všechny řádky z levé tabulky a odpovídající řádky z pravé tabulky. Pokud shoda neexistuje, hodnoty z pravé tabulky budou NULL.
Příklad:
SELECT a.id, a.name, b.order_id
FROM customers a
INNER JOIN orders b ON a.id = b.customer_id;
Zobrazí pouze zákazníky s objednávkami.
SELECT a.id, a.name, b.order_id
FROM customers a
LEFT JOIN orders b ON a.id = b.customer_id;
Zobrazí všechny zákazníky, včetně těch bez objednávek (v tomto případě bude order_id NULL).