Как правильно написать условие?
У меня есть следующий запрос 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)