【问题标题】:Comparing table data in MySQL比较 MySQL 中的表数据
【发布时间】:2012-11-22 20:56:10
【问题描述】:

我需要确定一个表中缺少哪些记录,并与另一个表进行比较。

我试过了:

SELECT * FROM tableA WHERE tableA.id NOT IN (SELECT tableB.id FROM tableB)

当然,当数据很小但tableA和tableB都有超过400k的记录并且进程卡住时,它通常可以工作,有没有更优化的方法来做到这一点?

【问题讨论】:

    标签: mysql sql select optimization compare


    【解决方案1】:

    连接通常比 IN 和 NOT IN 子句快。试试这个:

    SELECT tableA.*
    FROM tableA left join tableB on tableA.id = tableB.id
    WHERE tableB.id is null
    

    【讨论】:

    • 如果您想在任一表中丢失行,您将需要两个查询。
    猜你喜欢
    • 1970-01-01
    • 2012-06-10
    • 2013-04-06
    • 1970-01-01
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多