比较来自MS SQL和MySQL数据库的数据

时间:2019-02-27 10:12:21

标签: mysql sql sql-server

我想比较2个查询结果以获取不对应的数据。

我有一个链接到MySQL服务器的MS SQL服务器。

我的第一个查询在MS SQL数据库上获取电子邮件和与其关联的号码:

select email, number  from [DB].[dbo].[Contacts];

我的第二个查询在MySQL数据库上获取电子邮件和与其关联的编号:

select email, number from database.contacts;

我知道我可以使用这种查询从MS SQL在MySQL上运行查询:

SET @SQLStr = 'SELECT * FROM OPENQUERY([DB-01],''select email, number from database.contacts'')'
EXEC(@SQLStr)

但是我不知道如何读取和比较结果。

我想知道MySQL服务器中MS SQL数据库中存在的电子邮件和号码关联是否不同。

即: 如果电子邮件='eee@eee.com'并且MS SQL上的号码= 00222 但是在MySQL上通过电子邮件发送'eee@eee.com和number = 012325,我想得到第二个不同的结果。

1 个答案:

答案 0 :(得分:1)

为什么没有动态动态时为什么要使用动态SQL?

您可以使用标准查询:

SELECT * FROM OPENQUERY([DB-01],'select email, number from database.contacts')

通过SQL Server查询,您将获得两个结果集。

要比较结果,可以使用EXCEPT,从一个表中不存在的记录中获取记录。

另一种方法是使用OUTER JOIN~and see if any records have NULL`表示另一张表中没有匹配项。