Привет,
есть запрос, который в MySQL 5.5 отрабатывает верно, но на 5.1 версии начинает работать криво.
SELECT m0_.id AS id1,
m0_.title AS title2,
COUNT(m0_.chain_id) AS chain_cnt,
IFNULL(m0_.chain_id, UUID()) AS sclr41
FROM mall__store m0_
LEFT JOIN mall__store_highlighted_category_relation m3_ ON m0_.id = m3_.store_id
LEFT JOIN mall__store_category m1_ ON m1_.id = m3_.category_id
LEFT JOIN mall__store_priority_category_relation m4_ ON m0_.id = m4_.store_id
LEFT JOIN mall__store_category m2_ ON m2_.id = m4_.category_id
WHERE m0_.active = 1
AND m0_.rel_city_id = 2
AND m0_.parent_id IN (4)
AND m0_.id IN (185, 32, 156)
GROUP BY id1, title2
ORDER BY m0_.antiVip ASC
На самом деле там еще больше условий (для JOINов как раз), но все остальное не влияет на результаты.
На 5.5 выдает следующее (все как задумано):
А на 5.1 показывает так:
Как видите, поле chain_cnt увеличивается. Остальные поля разные из-за немного разных баз, там все нормально.
Все дело в джоинах, если их убрать все работает как надо, но убирать их не вариант.
Может кто-то подскажет как это можно победить?
Обновлять MySQL тоже не вариант, еще больше проблем может случиться.