数据库名称: 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, 但速度上好像没什么差异
有其他关键字可以提供吗 感激