我有三个表,按层次顺序让表格
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问题的部分重复。
答案 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