我有一个在线商店,并且产品数据库的设置如下。
我要做的是形成一个查询,该查询将打印其中的主要类别和产品数量,从最少到大多数产品排序。不做多次查询就可以吗?
结果应该是这样的:
maincat products
melons 0
grapes 2
apples 4
数据库:
database: maincat
id name
1 apples
2 grapes
3 melons
database: subcat
maincat_id subcat_id name
1 1 yellow apples
1 2 green apples
2 3 normal grapes
3 4 watermelons
3 5 honeydew melon
database: products
subcat_id name
1 yellow apple 1
1 yellow 2
1 yellow 3
2 green apple 1
3 grape 1
3 grape 2
最佳答案
select m.name, count(p.subcat_id) as products
from maincat m
left join subcat s on s.maincat_id = m.id
left join products p on p.subcat_id = s.subcat_id
group by m.name