首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >区域-区域-兴趣点查询优化

区域-区域-兴趣点查询优化
EN

Stack Overflow用户
提问于 2012-04-27 19:06:19
回答 1查看 48关注 0票数 1

我的数据库结构如下:

每个地区(CountryStates)可以有多个城市(Areas)。每个Area可以有许多旅游景点或兴趣点(POIs)。我想要得到每个地区有多少地区和景点的列表。如果没有,我想显示0。

这是我的问题:

代码语言:javascript
复制
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

如何在一个SELECT中执行此查询

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-27 19:09:54

此查询返回相同的结果:

代码语言:javascript
复制
SELECT c.Name AS Reg, 
        COUNT(DISTINCT(a.Id)) AS CountAreas,
        COUNT(p.Id) AS CountPois
FROM CountryStates as c 
    LEFT JOIN Areas as a ON a.CountryStates_Id = c.Id
    LEFT JOIN POIs AS p ON a.Id = p.Areas_Id
GROUP BY c.Name 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10349489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档