私のデータベースの構造は次のとおりです。
すべての地域(CountryStates
)は多くの都市(Areas
)を持つことができます。すべてArea
の人が多くの観光名所や名所を持っている可能性があります(POIs
)。各地域にいくつのエリアとアトラクションがあるかをリストアップしたいと思います。ない場合は0を表示したい。
これは私の質問です:
SELECT Tab1.Reg AS Reg, CountAreas, CountPois
FROM
(SELECT
c.Name AS Reg,
COUNT(a.Id) AS CountAreas
FROM
CountryStates as c LEFT JOIN
Areas AS a ON a.CountryStates_Id = c.Id
GROUP BY c.Name
) as Tab1 left join
(SELECT
c1.Name AS Reg,
COUNT(p.Id) AS CountPois
FROM
CountryStates as c1 LEFT JOIN
Areas AS a ON a.CountryStates_Id = c1.Id LEFT JOIN
POIs AS p ON a.Id = p.Areas_Id
GROUP BY c1.Name
) as Tab2 on Tab1.Reg = Tab2.Reg
このクエリを1つで行うにはどうすればよいSELECT
ですか?