-1

私は階層的な順序で3つのテーブルを持っています

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

GroupA には GroupB を B1、B2、B3 として持つ A1 があり、各 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 に答える