我已经在这个问题上坚持了几个小时了,任何帮助将不胜感激
我有两个表“products”和“product_subcategorys”
“products”仅包含唯一的 ID,而“product_subcategorys”则包含与“products”表相关的多个 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
所以我的问题是,我希望它仅从“产品”表返回品牌列表,我不能使用不同的,因为我需要计算倍数
我希望查询返回品牌“a”两次,但此查询返回 3 次,因为“product_subcategorys”中有两个匹配的 ID
最佳答案
这符合你的要求吗?
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')
);
关于mysql - SQL GROUP_CONCAT 与多个相关行的 LEFT JOIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36779617/