作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想对捆绑产品列表(每个 bundle 是表中的单个项目)进行排名,该列表基于已售出的单个组件(它们是同一表中的每个单个项目)的总数量。
所以我有一个产品表,在同一个表中包含一个主要项目及其相关组件。有一列将其标识为主要项目或组件(main='1' 或 main='0'),还有一列将组件与主要项目的行 ID 相关联(master_id='xxx')。我还有一列跟踪已售出的数量(该列称为 sold_count)。
但我如何根据每个主要项目的所有关联组件的 sold_count 总数对主要项目的结果查询进行排序?
SELECT Item_Name FROM 'products' WHERE main='1' ORDER BY _______________ ???
表结构如下:
ID | Item_Name | Main | Master_ID | Sold_Count
1 Kit A 1 0 0
2 Widget A1 0 1 3
3 Widget A2 0 1 6
4 Kit B 1 0 0
5 Widget B1 0 4 2
6 Widget B2 0 4 8
所以我希望根据相关小部件的售出数量对套件 A 和套件 B 进行排序。所以排序应该是:
因为套件 B 售出了 10 个小部件组件,而套件 A 总共只有 9 个。
最佳答案
这应该会给你可能想要的结果
这不是使用 mysql 扩展分组,而是使用 varchar 字段分组
SELECT b.item_name,
Sum(a.sold_count) AS sales
FROM products AS a
INNER JOIN products AS b
ON a.master_id = b.id
GROUP BY b.id
ORDER BY Sum(a.sold_count) DESC
如果你想使用 mysql 扩展并按 int 字段分组
SqlFiddle 示例 http://www.sqlfiddle.com/#!2/1725c/4/0
关于php - 根据同一表中的关联项目对项目进行正确的 ORDER BY 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18686040/
我是一名优秀的程序员,十分优秀!