use*_*349 1 mysql count request
我有两个表(MySQL):
table_products:// cid(text) - 逗号分隔的类别列表// id(int11)
id cid
1 1,2,3
2 5,21,8
3 2,4,15
Run Code Online (Sandbox Code Playgroud)table_categories
id name parent
1 Cat1 0
2 Cat2 0
3 Cat3 0
4 Cat4 0
Run Code Online (Sandbox Code Playgroud)这是我的要求:
SELECT `id`, `name`, `parent`
FROM `table_categories`
ORDER BY `parent` ASC, `id` ASC;
Run Code Online (Sandbox Code Playgroud)
如何执行上述请求并获取每个类别中的产品数量(来自table_products).可能正在使用(FIND_IN_SET).
fth*_*lla 10
如果每个类别都存在table_categories,那么您可以使用:
SELECT table_categories.name, count(table_products.id)
FROM
table_categories LEFT JOIN products
ON FIND_IN_SET(table_categories.id, products.cid)
GROUP BY table_categories.name
Run Code Online (Sandbox Code Playgroud)
如果products.cid中存在table_categories.id,则FIND_IN_SET将返回非零值,并且连接将成功.