我有2个数据库,一个用于操作,一个用于分析。
分析数据库与操作数据库不是1:1,但仍然非常相似。
现在我将存档文件(csv)加载到分析数据库中(之前它是空的)。
我在分析中有旧数据,在操作数据库中有我当前的数据。
我想编写一个查询来查明某些新加载的记录是否已存在于数据库中。
有没有办法检查出来?
编辑:
首先,我很抱歉。看了我的数据库后犯了一个错误。我不需要比较两个不同的数据库,而通过phpmyadmin复制操作数据库我忘记将当前数据加载到分析数据库中。 所以我只需要在一个数据库中比较2个表,是否有一些旧记录已经存在于数据库中。
我的第一个想法是/是:
SELECT *
FROM orderlinesold t1
LEFT JOIN orderlines t2 on t1.orderid = t2.orderid;
但是在运行该查询后,我得到了孔行,结果是不可能的 - >错误的查询。
如何查看某些旧数据是否仍在新数据中?
PS:表格在评论中作为链接。
好的,我解决了。只是稍微比较一下查询:
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;
两者都丢弃了正确的结果。
还是谢谢。这篇文章可以关闭。
答案 0 :(得分:0)
有一些工具可以帮助您比较两个数据库,但是您可以使用的基本技术(假设您可以依赖主键来识别缺失的记录)是:
select oo.id
from operations.orders oo
left join analytics.orders ao
on oo.id = ao.id
where ao.id is null