2011-10-05 6 views
7

में शामिल हों मेरे पास 2 टेबल एक भौगोलिक और अन्य पॉलीगॉन के साथ भूगोल के रूप में हैं।एसक्यूएल स्पेटियल

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; 

हालांकि, मैं एक दो तालिकाओं के बीच में शामिल होने और बहुभुज जिसमें से प्रत्येक प्राप्त करना चाहते हैं: मैं निम्न क्वेरी से जो बहुभुज एक बिंदु (बिंदु मेज से) गिर जाता है पता लगाने के लिए कर रहा हूँ प्वाइंट टेबल गिरावट में अंक। क्या यह भी संभव है? या मुझे प्वाइंट टेबल के माध्यम से लूप करने की आवश्यकता है और उपरोक्त क्वेरी को कई बार कॉल करें?

उत्तर

12

यह काम करना चाहिए:

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 

मैं एक सूचकांक संकेत क्वेरी के रूप में इस तेज़ हो जाएगी "(सूचकांक (...)) के साथ" जोड़ लिया है।

संबंधित मुद्दे