me_edu
SQL: запросы с нуляШаг 16 из 27 · 0% пройдено
Объединение таблиц (JOIN) · Объединение таблиц (JOIN)

LEFT JOIN и виды соединений

Иногда нужны все строки одной таблицы, даже без пары во второй. Для этого есть LEFT JOIN — он берёт все строки левой таблицы, а недостающие данные правой заполняет значением NULL:

SELECT u.name, o.amount FROM users u LEFT JOIN orders o ON o.user_id = u.id;

Теперь в результат попадут и пользователи без заказов — у них в amount будет NULL. Это позволяет, например, найти пользователей, которые ничего не заказали:

SELECT u.name FROM users u LEFT JOIN orders o ON o.user_id = u.id WHERE o.id IS NULL;

Основные виды: • INNER JOIN — только совпадения в обеих таблицах; • LEFT JOIN — все из левой + совпадения из правой; • RIGHT JOIN — все из правой (зеркально); • FULL JOIN — все из обеих.

JOIN-ы можно объединять с GROUP BY: например, посчитать сумму заказов по каждому пользователю — самый частый аналитический запрос.

Назад

Обсуждение

Войдите, чтобы участвовать в обсуждении.

Пока нет сообщений.