我想比较两个查询结果,以获得不对应的数据。
我有一个链接到MySQL服务器的MS SQL服务器。
我的第一个查询是在MS SQL数据库中获取电子邮件和与之关联的号码:
select email, number from [DB].[dbo].[Contacts];我的第二个查询获取MySQL数据库中的电子邮件和与其关联的号码:
select email, number from database.contacts;我知道我可以在MySQL中使用这种查询在MySQL上运行查询:
SET @SQLStr = 'SELECT * FROM OPENQUERY([DB-01],''select email, number from database.contacts'')'
EXEC(@SQLStr)但我不知道如何阅读和比较结果。
我想知道MySQL数据库中存在的电子邮件和号码关联在MySQL服务器中是否有所不同。
例如:如果在MS SQL上email = 'eee@eee.com‘,number = 00222,但在MySQL上email 'eee@eee.com,number = 012325,我想得到第二个不同的结果。
发布于 2019-02-27 18:21:00
既然没有动态SQL,为什么还要使用动态SQL呢?
您可以使用标准查询:
SELECT * FROM OPENQUERY([DB-01],'select email, number from database.contacts')对于SQL Server查询,您将获得两个结果集。
要比较结果,可以使用EXCEPT从一个表中获取另一个表中不存在的记录。
另一种方法是使用OUTER JOIN~and see if any records haveNULL`s,这意味着在另一个表中没有匹配项。
https://stackoverflow.com/questions/54902990
复制相似问题