如何从表中选择数据不存在于另一个表sql中。我尝试过NOT IN和NOT EXIST方法。但它会导致大量数据的性能问题。任何人都可以为此提出解决方案。? 提前谢谢。
我尝试了以下内容。
SELECT name
FROM table1
WHERE NOT EXISTS
(SELECT *
FROM table2
WHERE table1.name = table2.name)
NOT IN 案例。 但是对于大量数据而言性能问题。
答案 0 :(得分:3)
我认为您的表格table1
和table2
在name
列上有索引,因此您可以尝试这样做:
SELECT name
FROM table1 t1 LEFT JOIN table2 t2 ON t1.name = t2.name
WHERE t2.id IS NULL
可能是id列,如果没有,请使用t2.name
代替t2.id
答案 1 :(得分:0)
对于此查询:
SELECT name
FROM table1
WHERE NOT EXISTS
(SELECT *
FROM table2
WHERE table1.name = table2.name)
您需要table2(name)
上的索引。