MYSQL -按两列分组无效

cld4siwp  于 2022-11-28  发布在  Mysql
关注(0)|答案(1)|浏览(114)

我有2表,产品和标签的这个产品-我试图得到的产品,有大多数联合标签与用户标签。
所以我的代码看起来像:

SELECT 
    count(tags.id) AS best, 
    products.* 
from tags 
LEFT JOIN products ON products.idprod=tags.idprod 
where 
    ( tags.short = "one" OR tags.short = "two" OR tags.short = "four")
GROUP BY products.idprod, products.category
HAVING best > 2 
ORDER BY best DESC 
limit 8

问题是,在我的结果中,产品是按产品ID(idprod)分组的,而不是按类别分组的(一个类别应该只有一个产品)。
有什么想法吗?

5ssjco0h

5ssjco0h1#

组中的列需要出现在选择
试试这个:

SELECT 
    products.idprod, products.category,count(tags.id) AS best
from tags 
LEFT JOIN products ON products.idprod=tags.idprod 
where 
    ( tags.short = "one" OR tags.short = "two" OR tags.short = "four")
GROUP BY products.idprod, products.category
HAVING best > 2 
ORDER BY best DESC 
limit 8

相关问题