Как правильно написать условие?

У меня есть следующий запрос SQL^

SELECT `new_tours`.*, max(lp.price) AS max_price FROM `new_tours`
    LEFT JOIN `tours_prices` `lp` ON `new_tours`.`id` = `lp`.`tour_id`
    LEFT JOIN `currency` ON currency.code = "RUB"
    LEFT JOIN `user_wallet` ON user_wallet.user_id = new_tours.user_id
WHERE (max_price < user_wallet.balance)
GROUP BY `new_tours`.`id`

Результат запроса возвращает ошибку:

Unknown column 'max_price' in 'where clause'

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


Ответы (1 шт):

Автор решения: Денис

Попробуйте условие из where перенести в having

SELECT new_tours.*, max(lp.price) AS max_price FROM new_tours LEFT JOIN tours_prices lp ON new_tours.id = lp.tour_id LEFT JOIN currency ON currency.code = "RUB" LEFT JOIN user_wallet ON user_wallet.user_id = new_tours.user_id

GROUP BY new_tours.id HAVING (max(lp.price) < user_wallet.balance)

→ Ссылка