如何运行MySQL子查询来计算记录。

时间:2013-06-20 16:20:18

标签: mysql subquery

我有三个表,按层次顺序让表格

GroupA(id,and some other field) 
GroupB(id,groupA_id,some fields)
GroupC(id,groupB_id,some fields)

让GroupA拥有A1,其中GroupB为B1,B2,B3,每个GroupB各有一个GroupC。 现在我想在单个查询中获取此信息。

GroupA   |   Total_GroupB    |    Total_GroupC
  A1     |         4         |          10
  A2     |         6         |          12

我尝试了一些子查询,但都会出现某种错误,因为我的逻辑不正确。 如果有可能那么怎么做。我可以通过多个查询解决它,但我想要一个。 我是一些SO问题的部分重复。

1 个答案:

答案 0 :(得分:1)

根据我的理解你的问题,你需要类似下面的内容

SELECT a.id, count(distinct b.id) Total_GroupB, count(distinct c.id) Total_GroupC from GroupA a 
LEFT JOIN GroupB b ON a.id=b.groupa_id 
LEFT JOIN Groupc c ON b.id=c.groupb_id 
GROUP BY a.id