Поиск через where при использовании sum - mysql

176
19 сентября 2018, 04:40

Всем привет. Данный вопрос - дополнение вопроса Подсчет данных из таблицы со связями М-М 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 в данном случае?

Answer 1

Правильный вариант - использование HAVING вместо WHERE.

WHERE не работает по результирующим столбцам, оно смотрит "напрямую" в БД, а HAVING фильтрует уже полученные после WHERE данные.

P.S. пошел подтягивать SQL.

READ ALSO
Как удалить пробелы и переносы строк самом тексте массива

Как удалить пробелы и переносы строк самом тексте массива

Помогите решить проблему, есть массивы такого типа:

262
Вывод 6 элементов с базы данных

Вывод 6 элементов с базы данных

я хотел бы узнать, как мне вывести 6 элементов из базы? Вот мой код ниже:

149
Ошибка при выполнении команды php composer.phar install

Ошибка при выполнении команды php composer.phar install

Тому виной особенности реализации Snc\RedisBundle:

175
Кнопка класса QPushButton

Кнопка класса QPushButton

Создал класс кнопки, соответственно унаследовал от

173