我正在尝试编写一个包含所有内容的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'
我希望这是有道理的。我一直在考虑这么久,我确定我错过了一些明显的东西。任何建议都会很棒。
由于
答案 0 :(得分:2)
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)的行。如果某行不满足此条件,则在任一表中都不会返回该行。