Ответ
INNER JOIN возвращает только те строки, где есть совпадение в обеих таблицах. Если совпадений нет - строка не попадет в результат.
LEFT JOIN (или LEFT OUTER JOIN) возвращает все строки из левой таблицы, даже если нет совпадений в правой. В таком случае поля из правой таблицы будут NULL.
Пример:
-- INNER JOIN (только заказы с клиентами)
SELECT * FROM Orders
INNER JOIN Customers ON Orders.customer_id = Customers.id;
-- LEFT JOIN (все заказы, даже без клиентов)
SELECT * FROM Orders
LEFT JOIN Customers ON Orders.customer_id = Customers.id;
LEFT JOIN полезен, когда нужно сохранить все записи из основной таблицы, даже если связанные данные отсутствуют.
Видео-ответы
▶
▶
▶
▶
▶
▶
▶