php - 根据同一表中的关联项目对项目进行正确的 ORDER BY 查询

标签 php mysql sql

我想对捆绑产品列表(每个 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 进行排序。所以排序应该是:

  1. 套件 B
  2. 套件 A

因为套件 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/

相关文章:

java - Java 类中的 SQL 代码

php - 尝试通过 HTML 和 php 将数据插入 Mysql 数据库时出错

php - 将迭代算法应用于数据库中的一组行

php - JSON 请求时 Laravel 5 中的简单错误响应

php - 最多四个 <td>,然后开始新的 <tr>(MySQL 查询)

python - 如何使用 SQLAlchemy 在 Postgres 中执行 date_trunc 查询

php - mysql 多对多关系

mysql - 关于自连接的问题。查看两个用户是否交互

python - 使用 Python 将文本文件写入 SQL

javascript - 与远程数据库通信的 PhoneGap 应用程序