Sobes.tech
Назад к вопросам
Junior — Middle
85

Чем отличаются типы соединений INNER и LEFT JOIN при работе с таблицами в SQL?

Ответ от нейросети

sobes.tech AI

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

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

Пример:

SELECT a.id, a.name, b.order_date
FROM customers a
INNER JOIN orders b ON a.id = b.customer_id;

-- вернёт только клиентов с заказами

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

-- вернёт всех клиентов, включая тех, у кого нет заказов (order_date будет NULL)