使用来自3个不同表的信息进行mysql查询

使用来自3个不同表的信息进行mysql查询,mysql,Mysql,我有一个在线商店,产品数据库的设置如下。 我想做的是形成一个查询,将打印其中的主要类别和产品数量,按最少到大多数产品排序。如果不进行多个查询,这是可能的吗 结果应该是这样的: maincat products melons 0 grapes 2 apples 4 数据库: database: maincat id name 1 apples 2 grapes 3 melons database: subcat maincat_id subcat_

我有一个在线商店,产品数据库的设置如下。 我想做的是形成一个查询,将打印其中的主要类别和产品数量,按最少到大多数产品排序。如果不进行多个查询,这是可能的吗

结果应该是这样的:

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
是的,这是可能的。 这也是一个非常常见的情况

你需要的是在多个表上连接

请参阅此链接,了解其工作原理以及您需要的连接:


这里的解释是针对2个表的,但对3个表的解释是相同的。

非常感谢。当我读到它的时候,我想我会使用内部连接。但是,这两种方法都给出了相同的结果。对于
内部联接
s,在计数为零的情况下,不会得到maincats。
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