首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Spatial连接

SQL Spatial连接
EN

Stack Overflow用户
提问于 2011-10-05 08:11:12
回答 1查看 17K关注 0票数 10

我有两个表,一个是点作为地理位置,另一个是多边形作为地理位置。我可以通过下面的查询找到一个点落在哪个多边形上(从点表中):

代码语言:javascript
复制
DECLARE @p geography;
select @p = PointGeom from dbo.PointTable where ID = 1 
SELECT  a.ID, ATTRIBUTE1, geom 
from dbo.PolygonTable  a
where geom.STIntersects(@p) = 1;

但是,我想在两个表之间进行连接,并获得点表中每个点所在的多边形。这有可能吗?或者,我是否需要遍历Point表并多次调用上述查询?

EN

回答 1

Stack Overflow用户

发布于 2011-10-06 18:16:48

这应该是可行的:

代码语言:javascript
复制
SELECT 
    polyTable.[PolygonID]
,   pointTable.[PointID]
FROM 
[PolygonTable_Name] polyTable WITH(INDEX([SPATIAL_INDEX_NAME]))
INNER JOIN 
[PointTabl_Name] pointTable
ON
polyTable.Geog.STIntersects(pointTable.Geog) = 1

我添加了一个索引提示“WITH( index (...))”,因为这将加快查询速度。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7655408

复制
相关文章

相似问题

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