我有2个数据库,一个用于操作,一个用于分析。比较两个表的一致性(Mysql)与查询
分析数据库与操作数据库不是1:1,但仍非常相似。
现在我将归档文件(csv)加载到分析数据库(以前为空)。
我在分析中使用了旧数据,并在操作数据库中保存了当前数据。
我想编写一个查询来确定某些新加载的记录是否已经在数据库中。
有没有办法检查出来?
编辑:
首先,我很抱歉。查看我的数据库后犯了一个错误。我不需要比较两个不同的数据库,而通过phpmyadmin复制操作数据库时,我忘了将当前数据加载到分析数据库中。 所以我只需要比较一个数据库中的两个表,不管是否有一些旧记录已经存在于数据库中。
我的第一个想法是/是:
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;
上废弃正确的结果。
还是谢谢。这篇文章可以关闭。
请提供该表的格式两张桌子。更好的是,提供SQL,给出你所尝试过的例子。 – 2013-03-27 19:50:59
看起来像这个线程可能会帮助你http://stackoverflow.com/questions/225772/compare-two-mysql-databases?rq=1。否则,你可以为每个表编写查询来分析,也许使用'IN'或'NOT IN'子句。 – Scotch 2013-03-27 19:53:19
在这里我的表:http://imgur.com/XpgwI35 – JOP 2013-03-27 20:06:57