0

我有 2 个数据库,一个用于操作,一个用于分析。

分析数据库与操作数据库不是 1:1 相同,但仍然非常相似。

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

我在分析中有我的旧数据,在操作数据库中有我的当前数据。

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

有没有办法检查这个?

编辑:

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

我的第一个想法是/是:

SELECT * 
FROM orderlinesold t1 
LEFT JOIN orderlines t2 on t1.orderid = t2.orderid;

但是在运行该查询之后,我得到了孔行,这是不可能的——>错误的查询。

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

PS:表格在评论中作为链接。

  1. 编辑:

好的,我解决了。只是一个比较查询:

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

或者:

SELECT * 
FROM orderlinesold t1 
LEFT JOIN orderlines t2 ON t1.orderid = t2.orderid 
WHERE t2.orderid IS NOT NULL 
LIMIT 100000000;

两者都丢弃了正确的结果。

还是谢谢。这个帖子可以关了。

4

1 回答 1

0

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

select    oo.id
from      operations.orders oo
left join analytics.orders ao 
on        oo.id = ao.id
where     ao.id is null
于 2013-03-27T20:44:33.630 回答