
WHERE превращает ваш LEFT JOIN в INNER JOIN. И никто вам об этом не скажет
badcasedaily1 41 минуту назад WHERE превращает ваш LEFT JOIN в INNER JOIN. И никто вам об этом не скажет Простой 5 мин 1.1K Блог компании OTUS SQL * Программирование * Базы данных * PostgreSQL * Туториал Задача...
В сфере искусственного интеллекта произошло заметное событие. badcasedaily1 41 минуту назад WHERE превращает ваш LEFT JOIN в INNER JOIN. И никто вам об этом не скажет Простой 5 мин 1. 1K Блог компании OTUS SQL * Программирование * Базы данных * PostgreSQL * Туториал Задача знакомая, очень знакомая.
Нужна выгрузка: все клиенты и их заказы за апрель. Все — значит все, включая тех, кто за месяц так ничего и не купил. Отсюда LEFT JOIN, а не INNER.
Технические детали
Вы это прекрасно знаете, ведь не первый день в SQL. Добавляете WHERE orders. created_at >= '2024-04-01', чтобы отрезать всё, что не апрель.
В таблице клиентов восемь тысяч строк. В выгрузке почему‑то шесть. Две тысячи человек куда‑то испарились.
И не абы какие: пропали ровно те, ради кого вы и городили LEFT JOIN — клиенты без заказов. Неприятнее всего тут не сама пропажа. Неприятнее то, что запрос выглядит безупречно.
Отраслевые последствия
Вы смотрите на него и не видите ошибки. Её там и нет, в смысле синтаксиса. База не ругнулась, ничего красным не подсветилось.
Просто строк меньше, чем нужно, а это глазами не ловится: выгрузка не пустая, шесть тысяч живых записей, всё выглядит настоящим. Сейчас разберёмся, куда ушли эти две тысячи. С LEFT JOIN всё в порядке, правдаСнимем подозрение с главного обвиняемого сразу.
LEFT JOIN делает ровно то, что обещает. Берёт каждую строку левой таблицы. Не нашёл, и вот тут самое важное, строку всё равно оставил, просто колонки правой таблицы забил NULL‑ами.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





