← Все вопросы
Что такое JOIN и чем INNER отличается от LEFT простыми словами?
22
Только начал учить SQL. Есть таблицы users и orders. Что вообще делает JOIN и в чём разница между INNER JOIN и LEFT JOIN? Когда какой брать?
3 ответа
27
✓ Принятый ответ — помог автору
JOIN склеивает строки двух таблиц по условию (обычно по совпадению ключа). У тебя users.id и orders.user_id — по ним и соединяем.
SELECT u.name, o.id AS order_id
FROM users u
INNER JOIN orders o ON o.user_id = u.id;
Разница:
INNER JOIN— оставит только тех пользователей, у кого ЕСТЬ заказы. Без заказов — выпадают.LEFT JOIN— оставит ВСЕХ пользователей из левой таблицы (users), а у кого заказов нет — в колонках заказа будетNULL.
Типичный кейс для LEFT: «покажи всех юзеров и сколько у них заказов, включая тех, у кого ноль». С INNER ты таких просто не увидишь.
Тимур Осипов а как найти юзеров вообще без заказов? — LEFT JOIN + WHERE o.id IS NULL 👍 · 1 месяц назад
11
INNER — пересечение, LEFT — всё слева плюс совпадения справа.
6
Представь два круга. INNER — серединка где пересекаются. LEFT — весь левый круг целиком. Мне так на картинке зашло.
Ваш ответ
Войдите, чтобы ответить на вопрос.