資料庫名稱: MSSQL
資料庫版本: 2012
內容/問題描述:
Table A:
Columns: geom, type
======================
Table B, field_A, field_B
Columns: geom
======================
目前有兩個表格, 一個是 A, 一個B
我要從A這邊做完第一次篩選之後, 再到B把跟A有交集到的都挑出來
目前我的作法是這樣
WITH points as
(
SELECT geom
FROM A
WHERE type = 'some-type'
)
SELECT *
FROM B
WHERE points.geom.STContains(B.geom) = 1;
GROUP BY B.field_A B.field_B
ORDER BY B.field_B
這樣的成果會有很多重複資料, 所以不得不用 Group by.
想請問有沒有更好的作法
stored procedure 也可以
我嘗試過把 WHERE 改成 JOIN, 但速度上好像沒什麼差異
有其他關鍵字可以提供嗎 感激