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