我想比较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,我想得到第二个不同的结果。
答案 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`表示另一张表中没有匹配项。