RIGHT JOIN
Возвращает все строки из правой таблицы. Для строк без пары в левой — NULL.
SELECT ... FROM t1 RIGHT JOIN t2 ON t1.id = t2.t1_id;
Объяснение
Пример
-- Эквивалентные запросы SELECT * FROM orders o RIGHT JOIN users u ON u.id = o.user_id; -- То же самое: SELECT * FROM users u LEFT JOIN orders o ON o.user_id = u.id;
Связанные термины
Анекдоты по теме
— Что такое lateral join? — Это когда правая часть JOIN может ссылаться на строки из левой. — Зачем? — Классика: для каждого пользователя — его последние 3 заказа. SELECT u.*, o.* FROM users u, LATERAL (SELECT * FROM orders WHERE user_id = u.id ORDER BY date DESC LIMIT 3) o;
Разработчик: — У меня запрос на 8 таблиц через JOIN, подзапросы, оконные функции внутри WHERE и GROUP BY на хэш с миллиардом строк. Он идёт 3 дня. Как оптимизировать? DBA: — TRUNCATE TABLE карьера_разработчика. И иди в менеджеры.
Собеседование. Спрашивают: — В чём разница между LEFT JOIN и LEFT OUTER JOIN? Кандидат молчит 10 секунд. — Это одно и то же. Интервьюер: — Правильно. Просто хотел посмотреть на твоё лицо.