Как переписать запрос без RIGHT JOIN, используя только LEFT JOIN? Исходный запрос: SELECT u.user_id, o.order_id FROM users u RIGHT JOIN orders o ON u.user_id = o.user_id;

ASELECT u.user_id, o.order_id FROM users u LEFT JOIN orders o ON u.user_id = o.user_id;
BSELECT u.user_id, o.order_id FROM orders o LEFT JOIN users u ON u.user_id = o.user_id;
CSELECT u.user_id, o.order_id FROM users u FULL JOIN orders o ON u.user_id = o.user_id;
DSELECT u.user_id, o.order_id FROM users u UNION SELECT user_id, order_id FROM orders;
Правильный ответ. RIGHT JOIN эквивалентен LEFT JOIN, если поменять таблицы местами.

Разбор

RIGHT JOIN сохраняет все строки из правой таблицы (orders). То же самое можно сделать через LEFT JOIN, если поставить orders слева: FROM orders o LEFT JOIN users u .... Такой стиль обычно читается проще и реже приводит к путанице в аналитических запросах.

Проверь себя · 1/3разбор после ответа
Первый набор содержит значения: 100, 100, 100, 200. Второй набор: 100, 300. Чем отличаются результаты EXCEPT и EXCEPT ALL?
Тренировать SQL в Telegram

Ещё вопросы по теме «JOIN и операции множеств»