Sobes.tech
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).