0

我有两个表,其中 tableA 包含 100 万条记录,而另一个 tableB 包含 1300 万条记录,现在我想要 tableA 中那些不在 tableB 中的记录

我用下面的查询

 SELECT tableA .mergedSSN,total_unique_ssn.unique_ssn  FROM `tableA`,`tableB` WHERE tableA.mergedSSN <> tableB.unique_ssn 

但是上面的查询时间太长了,请帮助我快速获取记录。

4

2 回答 2

2

首先,按每个表中的列创建索引(如果您还没有)。然后,

SELECT 
  tableA.mergedSSN
FROM
  tableA 
  LEFT JOIN
    tableB ON tableA.mergedSSN=tableB.unique_ssn
WHERE
  tableB.unique_ssn IS NULL
于 2013-08-21T13:34:10.990 回答
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 作为索引字段。

于 2013-08-21T13:36:03.157 回答