使用查询比较两个表的一致性(Mysql)

使用查询比较两个表的一致性(Mysql),mysql,sql,database,Mysql,Sql,Database,我有两个数据库,一个用于运营,一个用于分析 分析数据库与运营数据库的比例不是1:1,但仍然非常相似 现在我将归档文件(csv)加载到分析数据库中(以前它是空的) 我在分析中有我的旧数据,在运营数据库中有我的当前数据 我想写一个查询,看看一些新加载的记录是否已经在数据库中 有什么办法可以查出来吗 编辑: 首先我很抱歉。在查看我的数据库后犯了一个错误。我不需要比较两个不同的数据库,当通过phpmyadmin复制操作数据库时,我忘记了将当前数据加载到分析数据库中。 所以我只需要比较一个数据库中的两个表

我有两个数据库,一个用于运营,一个用于分析

分析数据库与运营数据库的比例不是1:1,但仍然非常相似

现在我将归档文件(csv)加载到分析数据库中(以前它是空的)

我在分析中有我的旧数据,在运营数据库中有我的当前数据

我想写一个查询,看看一些新加载的记录是否已经在数据库中

有什么办法可以查出来吗

编辑:

首先我很抱歉。在查看我的数据库后犯了一个错误。我不需要比较两个不同的数据库,当通过phpmyadmin复制操作数据库时,我忘记了将当前数据加载到分析数据库中。 所以我只需要比较一个数据库中的两个表,看看数据库中是否已经有一些旧记录

我的第一个想法是:

SELECT * 
FROM orderlinesold t1 
LEFT JOIN orderlines t2 on t1.orderid = t2.orderid;
但在运行该查询之后,我得到了孔行,这是不可能的-->错误查询

如何检查某些旧数据是否仍在新数据中

备注:表格在注释中作为链接

  • 编辑:
  • 好的,我解决了。只是一个比较小的问题:

    SELECT * 
    FROM ordersold t1  
    INNER JOIN orders t2 ON t1.orderid = t2.orderid 
    LIMIT 100000000;
    
    或:

    两者都放弃正确的结果


    还是谢谢。此帖子可以关闭。

    有一些工具可以帮助您比较两个数据库,但假设您可以依靠主键来识别丢失的记录,则可以使用的基本技术是:

    select    oo.id
    from      operations.orders oo
    left join analytics.orders ao 
    on        oo.id = ao.id
    where     ao.id is null
    

    请提供这两个表格的表格格式。更好的是,提供SQL,它给出了一个您尝试过的示例。看起来这个线程可能会对您有所帮助。否则,您可以为每个表编写查询以进行分析,可以使用
    IN
    NOT IN
    子句。这里是我的表:谢谢,但我编辑了我的线程,因为我不再需要比较两个数据库,但如果有相同的ID,则需要比较两个表。这个问题正确吗?选择*FROM orderlinesall t1 LEFT JOIN orderlines t2 on t1.orderid=t2.orderid,其中t2.orderid不为空限制30000;不,您必须在记录较少的表中查找IS NULL。假设orderlines的记录比OrderLineSeld多,那么应该是:从OrderLineSeld t1选择*右键连接t1.orderid=t2.orderid上的orderlines t2,其中t1.orderid为空限制30000;注意,我也从左向右改变了。
    select    oo.id
    from      operations.orders oo
    left join analytics.orders ao 
    on        oo.id = ao.id
    where     ao.id is null