Back to questions
Junior — Middle
79
Можете объяснить различия между внутренним соединением и левым соединением в SQL?
Answer from AI
sobes.tech AI
Внутреннее соединение (INNER JOIN) возвращает только те строки, которые имеют совпадения в обеих таблицах по условию соединения. Если в одной из таблиц нет соответствующей записи, то такая строка не попадёт в результат.
Левое соединение (LEFT JOIN) возвращает все строки из левой таблицы и соответствующие строки из правой таблицы. Если для строки из левой таблицы нет совпадения в правой, то в результат попадут значения из левой таблицы, а для правой — NULL.
Пример:
SELECT a.id, a.name, b.order_id
FROM customers a
INNER JOIN orders b ON a.id = b.customer_id;
Вернёт только клиентов, у которых есть заказы.
SELECT a.id, a.name, b.order_id
FROM customers a
LEFT JOIN orders b ON a.id = b.customer_id;
Вернёт всех клиентов, включая тех, у кого нет заказов (в этом случае order_id будет NULL).