WHERE um.id NOT IN (
SELECT users_metrics_stats.metric_id FROM users_metrics_stats
)
Выдает на 5.7 и на 8 разные результаты, а если быть точнее, то на 8 версии не выдает ничего, на 5.7 выбирает корректно. Цель тут получить ид юзера + ид метрики, которой еще нету в users_metrics_stats. Как с этим бороться?
Джойн у тебя косяченый
Тут просто вопрос стоит в том, почему я получаю разное поведение для него на разных версиях, при том на 5.7 я получаю ожидаемый корректный результат
Потому что версии разные, а запрос неправильный
Я не спец, но где условие джоина? По запросу прлучается эквивалент кросс джоина со строками, не входящими в подзапрос.
А где условие JOIN-а ?
Та я натупил там, да, вообще неправильно
SELECT ... FROM users_metrics um JOIN users ON ...... WHERE um.id NOT IN ( SELECT users_metrics_stats.metric_id FROM users_metrics_stats )
Разные данные потому что у тебя в разных базах.
Да-да, я об это и споткнулся, сам себя обдурил)
Обсуждают сегодня