Sobes.tech
Back to questions
Junior — Middle
89

Объясните отличие между внутренним и левым соединением в SQL и в каких ситуациях используют каждый из них?

Companies where asked
Цифрум

Answer from AI

sobes.tech AI

Внутреннее соединение (INNER JOIN) возвращает только те строки, которые имеют совпадения в обеих таблицах по условию соединения. Если совпадений нет, то строка не попадёт в результат.

Левое соединение (LEFT JOIN) возвращает все строки из левой таблицы и соответствующие строки из правой. Если для строки из левой таблицы нет совпадений в правой, то в результат попадут значения из левой таблицы, а для правой — NULL.

Используют INNER JOIN, когда нужны только совпадающие данные из обеих таблиц, например, чтобы получить список заказов с информацией о клиентах, только если клиент существует.

LEFT JOIN применяют, когда важно сохранить все данные из левой таблицы, даже если для них нет соответствующих записей в правой, например, чтобы получить всех клиентов и их заказы, включая клиентов без заказов.

Пример:

SELECT customers.name, orders.id
FROM customers
LEFT JOIN orders ON customers.id = orders.customer_id;