我想要对捆绑产品的列表(每个包是表中的一个单数)进行排序,这个列表基于其各个组件的总数量(这些组件是同一表中的每个单数项)。
因此,我在同一个表中有一个包含主项及其相关组件的产品表。有一列将其标识为主项或组件( 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因此,我想让Kit A和Kit B根据出售的相关小部件的数量进行排序。因此,这种情况应该是:
因为Kit B有10个小部件组件售出,而Kit A只有9个总部件。
发布于 2013-09-08 17:10:54
这可能会给你想要的结果。
这没有使用mysql扩展来分组by,并且使用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
https://stackoverflow.com/questions/18686040
复制相似问题