JOINНачальный
RIGHT JOIN
Возвращает все строки из правой таблицы. Для строк без пары в левой — NULL.
Синтаксис
SELECT ... FROM t1 RIGHT JOIN t2 ON t1.id = t2.t1_id;
Объяснение
RIGHT JOIN — зеркало LEFT JOIN. На практике используется редко: обычно можно переписать порядок таблиц и использовать LEFT JOIN.
RIGHT JOIN и LEFT JOIN — синонимы при перестановке таблиц: A RIGHT JOIN B = B LEFT JOIN A.
Пример
-- Эквивалентные запросы 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;
Связанные термины
Анекдоты по теме
Собеседование: — Что быстрее: JOIN или подзапрос? Ответ: зависит от оптимизатора, размера данных и индексов. Интервьюер: правильный ответ. Кандидат: но это же уход от ответа! Интервьюер: нет. Это понимание того, что серебряных пуль не существует.
Таблица Users пишет таблице Orders: — Ты забыл про меня. Мы не связаны. Orders: — У тебя нет внешнего ключа ко мне. Users: — Значит, я буду NULL в твоей жизни. DBA: — Это LEFT JOIN, успокойтесь.
ORM приходит к психотерапевту: — Я генерирую запросы. Терапевт: — И что в этом плохого? ORM: — 500 JOIN на пустой таблице. Терапевт: — А lazy loading пробовали? ORM: — Тогда 500 отдельных запросов. Терапевт: — Вам нужен DBA.