作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图通过 mysql 查询来获取最畅销的产品列表。问题是即使在我使用 count 之后它仍然会获取所有数据。
select
mf.*,
od.*,
count(od.product_id) as product_count
from masterflight mf ,
order_details od
where od.product_id=mf.ProductCode
group by od.product_id
order by product_count
此处 masterflight
是存储产品详细信息及其 id 的表。 order_details
是存储每个单独销售的产品记录的表。我试图放入一个逻辑中,假设 ID 为 2
的产品售出 4 次,每次它都有一个单独的条目,那么我将使用 COUNT
和然后显示它似乎正在工作。
最佳答案
尝试一些更整洁的东西:
select
mf.ProductCode,
count(od.*) as product_count
from
order_details od
inner join masterflight mf on
od.product_id = mf.ProductCode
group by
mf.ProductCode
order by product_count desc
问题是你选择了所有的 od
,但你没有按它分组,所以你只是得到所有的订单行,这对你没有真正的帮助根本。我应该指出,MySQL 是唯一允许这种行为的主要 RDBMS——它令人困惑且难以调试。我建议不要使用该特定功能。作为一般规则,如果您选择了一列但没有聚合(例如-sum
、avg
、min
等.) 上,那么您需要在 group by
子句中使用它。
关于mysql - 从mysql计算最畅销的产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20794772/
我正在使用以下教程按选项(过滤)显示最畅销的产品以显示在 magento 的产品列表页面上? Tutorial /app/code/local/Mage/Catalog/Model/Resource/
我是一名优秀的程序员,十分优秀!