🗄️ SQL: JOIN на пальцах
Какой JOIN что возвращает, с мини-примером.
Теория · Данные · #sql #postgres
Есть две таблицы: users(id, name) и orders(id, user_id, sum).
| JOIN | Возвращает |
|---|---|
INNER |
только пары, у которых есть совпадение |
LEFT |
все слева + совпадения справа (иначе NULL) |
RIGHT |
зеркально LEFT |
FULL |
все строки обеих таблиц |
CROSS |
декартово произведение |
-- пользователи без заказов
SELECT u.name
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
WHERE o.id IS NULL;
Совет: Условие по правой таблице в
WHEREпревращаетLEFT JOINвINNER. Условие кладите вON.