我已经被困在这几个小时了,任何帮助将不胜感激
我有两张桌子'产品'和' product_subcategorys'
'产品'仅保留唯一的ID,其中" product_subcategorys'拥有与产品相关的多个ID'表
'products'
id brand
1 a
2 b
3 a
'product_subcategorys'
id subcat
1 u
1 i
2 u
3 u
这是我的查询,分组依据' p.id'似乎不起作用
SELECT GROUP_CONCAT(p.brand)
FROM products p
LEFT JOIN product_subcategorys s ON p.id = s.id
WHERE (
s.subcategory = "u"
OR s.subcategory = "i"
) AS GROUPbrand
所以我的问题是,我希望它只返回“'产品”中的品牌列表。表我不能使用distinct,因为我需要计算倍数
我希望查询返回品牌' a'两次,但此查询返回3次,因为" product_subcategorys'
中有两个匹配的ID答案 0 :(得分:1)
这样做你想要的吗?
SELECT GROUP_CONCAT(p.brand ORDER BY p.id)
FROM products p
WHERE EXISTS (SELECT 1
FROM product_subcategorys s
WHERE p.id = s.id AND
s.subcategory IN ('u', 'i')
);