答案 0 :(得分:2)
如果我找对你,这就是你想要的。
SELECT
t1.name
FROM
Table1 t1
WHERE
t1.name
NOT IN
(
SELECT t2.name
FROM Table2 t2
JOIN t1
ON t2.name = t1.name
)
答案 1 :(得分:1)
您需要指定一列(或多列),用于“匹配”行,以确定它们是否为“重复”。
我将假设(缺少任何架构信息)列名称为id
。
“反连接”模式通常是性能最佳的选项:
SELECT a.id
FROM table1 a
LEFT
JOIN table2 b
ON a.id = b.id
WHERE b.id IS NULL
(表现取决于一大堆因素。)
您的其他选择是使用NOT EXISTS谓词:
SELECT a.id
FROM table1 a
WHERE NOT EXISTS
( SELECT 1
FROM table2 b
WHERE b.id = a.id
)
或者,使用NOT IN谓词:
SELECT a.id
FROM table1 a
WHERE a.id NOT IN
( SELECT b.id
FROM table2 b
WHERE b.id IS NOT NULL
)
生成的每个语句的执行计划和执行情况可能会有所不同。对于大集合,“反连接”模式(第一个查询)通常表现最佳。