如何使用geom优化连接查询

时间:2017-07-31 00:28:59

标签: postgresql postgis

我想在两个表上进行连接,表b行为null,然后插入另一个表进行进一步分析。

我正在使用以下联接:

SELECT a.*
INTO tmp_missing_cad_polygon
FROM table_a a
LEFT JOIN table_b b
    ON a.geom = b.geom
WHERE b.geom IS NULL;

此查询似乎适用于小型数据集,但不适用于较大的集合。我在geom上尝试了嵌套的select语句,但似乎不能使用geom数据结构。

非常感谢任何帮助。

干杯。

1 个答案:

答案 0 :(得分:0)

在这种情况下,对于空间连接,建议对大型数据集使用EXCEPT子句。

SELECT a.cad_pid FROM left_table a
EXCEPT
SELECT b.cad_pid FROM right_table b;

这只返回左表中与右表不匹配的行。可以在提供的链接中找到更深入的分析。

https://www.red-gate.com/simple-talk/sql/performance/the-except-and-intersect-operators-in-sql-server/ https://www.essentialsql.com/get-ready-to-learn-sqlserver-18-how-to-use-the-except-operator/