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 работает уже 40 минут. — Сколько строк в таблицах? — По миллиону. — Индекс есть? — Нет. — Ну и жди ещё 40.
Приходит JOIN к врачу: — Доктор, я перемножаю таблицы, и у меня из 1000 строк стало 1000000. Врач: — Ты забыл условие. Это CROSS JOIN. Оно неизлечимо.
— Какая разница между INNER JOIN и дружбой? — INNER JOIN рвётся, если нет совпадений. А дружба — LEFT JOIN. Даже когда вы не совпадаете, ты всё равно остаёшься в таблице.