#php #sql #laravel
Всем привет. Данный вопрос - дополнение вопроса Подсчет данных из таблицы со связями
М-М mysql.
Вводные данные:
Таблицы orders, products, order_products. В таблице order_products есть поля order_id,
product_id, price, count. Я получаю поле total через использование sum(), получается
следующий запрос:
select `orders`.*,
sum( order_products.price * order_products.count) as `total`
from `orders`
left join `order_products`
on `order_products`.`order_id` = `orders`.`id`
where `id` = 2
group by `orders`.`id`
Вопрос именно в использовании where для поля total. Если я добавлю в запрос во where
следующее: where 'total' > 1000, я получу ошибку, мол, поля total не существует. Да,
самого поля не существует, но получаемые данные-то есть. Как мне использовать where
в данном случае?
Ответы
Ответ 1
Правильный вариант - использование HAVING вместо WHERE. WHERE не работает по результирующим столбцам, оно смотрит "напрямую" в БД, а HAVING фильтрует уже полученные после WHERE данные. P.S. пошел подтягивать SQL.
Комментариев нет:
Отправить комментарий