【问题标题】:Retrieve most popular products in a category sql statement检索类别 sql 语句中最受欢迎的产品
【发布时间】:2014-07-03 23:28:08
【问题描述】:

我正在尝试编写一个包罗万象的 SQL 语句,以根据类别 ID 从我的商店中检索最受欢迎的商品。英文:对于 categoryID,对最畅销的商品进行排序

我已设法查询 tblOrderContents 并对结果进行分组 + 排序,其中最受欢迎的在顶部:

SELECT productID, count(productID)
FROM tblOrderContents oc
GROUP BY productID 
ORDER BY count(productID) DESC

产生:

 ID                         COUNT
 16                          419
 12                          52
 34                          38
 33                          33

但我正在努力弄清楚如何仅针对特定类别检索此内容。我认为这将需要一个左连接,但这不起作用:

SELECT productID from tblProdCat 
LEFT JOIN (SELECT STATEMENT DETAILED ABOVE)
WHERE categoryID = '7'

我希望这是有道理的。我一直在考虑它这么久,我确定我错过了一些明显的东西。任何建议都会很棒。

谢谢

【问题讨论】:

  • 你能包含你的表结构吗?了解每个表中的列会很有帮助。

标签: mysql sql


【解决方案1】:

tblProdCat 中有 productID 吗?如果是这样,以下语句应该有效:

SELECT productID, count(productID)
FROM tblOrderContents oc
INNER JOIN tblProdCat pc ON oc.ProductId = pc.ProductId AND pc.CategoryId = '7'
GROUP BY productID 
ORDER BY count(productID) DESC

说明:此内部连接仅返回满足条件(categoryID = '7' 和匹配的 productId's)的行。如果行不满足此条件,则在任一表中,都不会返回该行。

【讨论】:

    猜你喜欢
    • 2021-07-02
    • 1970-01-01
    • 2021-02-20
    • 1970-01-01
    • 1970-01-01
    • 2022-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多