-1

我有三个按层次顺序排列的表让表是

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 问题的部分重复。

4

1 回答 1

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
于 2013-07-03T10:34:53.937 回答