我有两个表,其中tableA包含100万条记录,而其他tableB包含1300万条记录,现在我想从tableA记录那些不在tableB中的记录
我使用了以下查询
SELECT tableA .mergedSSN,total_unique_ssn.unique_ssn FROM `tableA`,`tableB` WHERE tableA.mergedSSN <> tableB.unique_ssn
但是上面的查询时间太长了,请帮我快速录制。
答案 0 :(得分:2)
首先,在每个表中按列创建索引(如果还没有它们)。然后,
SELECT
tableA.mergedSSN
FROM
tableA
LEFT JOIN
tableB ON tableA.mergedSSN=tableB.unique_ssn
WHERE
tableB.unique_ssn IS NULL
答案 1 :(得分:1)
怎么样
SELECT tableA.unique_ssn FROM tableA
WHERE tableA.unique_ssn NOT IN (SELECT tableB.unique_ssn FROM tableB)
您需要确保将tableA.unique_ssn和tableB.unique_ssn都作为索引字段。