mysql查询包含来自3个不同表的信息

时间:2014-11-15 08:20:17

标签: mysql

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

结果应该是这样的:

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 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

是的,这是可能的。 这也是一种非常常见的情况。

你需要在多个桌子上加入。

请参阅此链接以获取有关其工作原理以及您需要加入的详细说明: https://stackoverflow.com/a/38578/4218046

有2个表的解释,但它对3个表的工作方式相同。