【发布时间】:2011-03-06 05:56:12
【问题描述】:
我很好奇在 sql 上查询排除的最有效方法。例如。有 2 个表(tableA 和 tableB)可以连接到 1 列(col1)。我想为tableB中不存在col1的所有行显示tableA的数据。
(也就是说,tableB 包含 tableA 的 col1 的一个子集。我想显示 tableA 而没有 tableB 中存在的数据)
假设 tableB 有 100 行,而 tableA 是巨大的(超过 1M 行)。我知道可以使用“不在(不存在)”,但也许有更有效的方法(更少的补偿时间)来做到这一点。?我可能没有外部连接?
非常感谢代码 sn-ps 和 cmets。
【问题讨论】:
-
什么 DBMS? SQL Server、MySQL、甲骨文?这些查询优化器的功能不同。
-
甲骨文。如果各种 DBMS 之间存在显着的性能差异,我会感到惊讶。
-
是的,你会感到惊讶。 :)
标签: sql performance join