Условие по правой таблице в WHERE после LEFT JOIN
Вы собираете витрину «клиенты и их оплаченные заказы». По требованию аналитиков в витрине должны быть все клиенты, включая тех, у кого оплаченных заказов нет.
SELECT c.client_id, o.order_id
FROM dds.clients c
LEFT JOIN dds.orders o ON o.client_id = c.client_id
WHERE o.status = 'paid';
Что фактически вернёт этот запрос?
- Всех клиентов: у тех, кто без оплаченных заказов, order_id будет NULL.
- Всех клиентов и все их заказы: фильтр по статусу повлияет только на значение order_id.
- Только клиентов с хотя бы одним оплаченным заказом: строки-«пустышки» от LEFT JOIN отсекаются условием в WHERE.
- Ошибку выполнения: колонку правой таблицы нельзя использовать в WHERE после LEFT JOIN.
