INNER JOIN

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

INNER JOIN оставляет только совпавшие строки

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

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

Если заказ ссылается на существующего пользователя, строки объединяются. Если совпадения нет, такой заказ не появляется в результате этого соединения.

JOIN обычно означает INNER JOIN

Во многих запросах слово INNER опускают: запись JOIN users ... обычно эквивалентна INNER JOIN users ....

INNER JOIN отвечает на вопрос «где есть совпадение с обеих сторон?». Если тебе важно сохранить строки без пары, нужен внешний JOIN, который разберём дальше.