SQLLab
JOINНачальный

LEFT JOIN

Возвращает все строки из левой таблицы. Для строк без пары в правой — NULL.

Синтаксис
SELECT ... FROM t1 LEFT JOIN t2 ON t1.id = t2.t1_id;

Объяснение

LEFT JOIN (= LEFT OUTER JOIN) — второй по популярности тип соединения. Гарантирует, что все строки левой таблицы попадут в результат. Часто используется для: - Поиска «осиротевших» записей: WHERE right.id IS NULL - Опциональных связей: пользователь может иметь профиль, а может не иметь

Пример

-- Все пользователи, даже без заказов
SELECT u.name, COUNT(o.id) AS orders_count
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.id, u.name;

-- Пользователи БЕЗ заказов
SELECT u.* FROM users u
LEFT JOIN orders o ON o.user_id = u.id
WHERE o.id IS NULL;