gpt4 book ai didi

mySQL - 比较表行

转载 作者:行者123 更新时间:2023-11-29 08:50:49 25 4
gpt4 key购买 nike

我只是不太确定这样做的正确方法。我基本上有2张 table 。两个表具有相同的结构。 Database1(当前数据平均20k行),Database2(数据累积,在任何给定时间可以超过100万行)。

我想比较两个表,并通过特定的时间戳查询给出 Database1 中不存在于 Database2 中的结果。我已经尝试过但查询需要很长时间才能搜索。

尝试过:

select distinct player from Database1
where not exists (select player from Database2 where snap = 1340981695)

SELECT Database1.player FROM Database1
INNER JOIN Database2 ON Database1.player NOT IN (Database2.player) AND Database2.snap = 1340981695
GROUP BY Database1.player

select distinct Database1.player from Database1
left join Database2 on Database1.player not in (Database2.player)
and Database2.snap = 1340981695

我仍然无法理解这个问题。感谢您的帮助。

最佳答案

共有三种方法。大致顺序为performance ,从最好到最差:

  1. 使用外部联接:

    SELECT Database1.*
    FROM Database1
    LEFT JOIN Database2
    ON Database1.id = Database2.id AND Database2.snap = 1340981695
    WHERE Database2.id IS NULL
  2. 使用IN:

    SELECT *
    FROM Database1
    WHERE id NOT IN (SELECT id FROM Database2 WHERE snap = 1340981695)
  3. 使用EXISTS:

    SELECT *
    FROM Database1
    WHERE NOT EXISTS (
    SELECT *
    FROM Database2
    WHERE id = Database1.id AND snap = 1340981695
    )

关于mySQL - 比较表行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11279108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com