我有两个表,一个是点作为地理位置,另一个是多边形作为地理位置。我可以通过下面的查询找到一个点落在哪个多边形上(从点表中):
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表并多次调用上述查询?
发布于 2011-10-06 18:16:48
这应该是可行的:
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 (...))”,因为这将加快查询速度。
https://stackoverflow.com/questions/7655408
复制相似问题