【问题标题】:Sort SQL request by values of another table按另一个表的值对 SQL 请求进行排序
【发布时间】:2014-10-25 20:03:52
【问题描述】:

我有一张产品表和一张产品评论表。当我显示产品库存时,我希望选择按评论评分对它们进行排序,但是如何使用来自另一个表的值对一个表进行排序?

产品

product_id | ...
------------------
    1        ...
    2        ...
    3        ...
    4        ...
   ...

评论

review_id | product_id | user_id | score | ...
------------------------------------------------
   1             2         104       5     ...
   2             1          98       4     ...
   3             2          76       2     ...
   4             3         119       5     ...
  ...           ...        ...      ...

我有以下产品列表,按总评论分数降序排列:

SELECT product_id, SUM(score)/(COUNT(*)*1.0) AS scoring
    FROM reviews
    GROUP BY product_id
    ORDER BY scoring DESC

但我想从这个排序中对表products 进行排序,因为单独这样做是没有用的。

【问题讨论】:

    标签: sql sorting pdo


    【解决方案1】:

    如果你用products 表做一个JOIN 然后对它进行排序

    select p.*, tab.scoring
    from products p
    INNER JOIN
    (
    SELECT product_id, SUM(score)/(COUNT(*)*1.0) AS scoring
        FROM reviews
        GROUP BY product_id
    ) tab on p.product_id = tab.product_id
    ORDER BY tab.scoring DESC  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-18
      • 1970-01-01
      • 2021-01-23
      • 2011-05-05
      • 1970-01-01
      相关资源
      最近更新 更多