Mysql: в чем ошибка в запросе с having?

Всем доброго времени суток!

Помогите, пожалуйста, поправить запрос, чтобы он выдавал корректный результат.

SELECT doc1.doc_id, doc1.doc_num, doc1.doc_date, doc1.doc_version1, doc2.signed_by_us, doc2.signed_by_ca, doc2.doc_version2, doc2.doc_check_version FROM doc1
LEFT JOIN doc2 ON doc1.doc_id = doc2.doc_id
WHERE doc2.signed_by_us = 1 OR doc2.signed_by_ca = 1
GROUP BY doc1.doc_num, doc1.doc_date
HAVING MAX(doc1.doc_version1) > GREATEST( doc2.doc_version2, doc2.doc_check_version );

Нужно, чтобы каждую запись из doc2, где signed_by_us = 1 or signed_by_ca = 1 в группе запрос сравнивал с MAX(doc_version1). Но по факту получается, что HAVING MAX(doc_version1) > GREATEST( doc_version2, doc_check_version ) не работает и выдает пустой ответ. Большая просьба объяснить, где я не права.
PS: MAX(doc1.doc_version1) может не существовать в doc2.
  • Вопрос задан
  • 37 просмотров
Пригласить эксперта
Ответы на вопрос 1
BojackHorseman
@BojackHorseman Куратор тега MySQL
...в творческом отпуске...
включите only_full_group_by и увидите
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы