Всем привет. Данный вопрос - дополнение вопроса Подсчет данных из таблицы со связями М-М 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
в данном случае?
Правильный вариант - использование HAVING
вместо WHERE
.
WHERE
не работает по результирующим столбцам, оно смотрит "напрямую" в БД, а HAVING
фильтрует уже полученные после WHERE
данные.
P.S. пошел подтягивать SQL.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Помогите решить проблему, есть массивы такого типа:
я хотел бы узнать, как мне вывести 6 элементов из базы? Вот мой код ниже:
Тому виной особенности реализации Snc\RedisBundle: