Основы JOIN

Базовый SQL
≈ 1 мин чтения

JOIN сопоставляет строки двух источников

Пусть таблица orders хранит user_id, а информация о пользователе находится в таблице users. Чтобы получить заказ вместе с именем пользователя, нужно связать строки по идентификатору.

SELECT orders.id, users.name
FROM orders
JOIN users ON users.id = orders.user_id;

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

Псевдонимы делают запрос короче

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

Псевдонимы o и u особенно полезны, когда в запросе несколько таблиц или у них есть одинаковые имена столбцов.

JOIN без понятного условия связи легко создаёт неверный результат. Перед написанием запроса сначала сформулируй связь словами: например, «заказ принадлежит пользователю, если orders.user_id = users.id».