Sql server 2005 MySQL如何选择OpenQuery Not In语句
下面的语句将从OpenQuery(MYSQL)返回值 我想在结果值应该来自dbo.ResearchRpt的地方反转它Sql server 2005 MySQL如何选择OpenQuery Not In语句,sql-server-2005,openquery,Sql Server 2005,Openquery,下面的语句将从OpenQuery(MYSQL)返回值 我想在结果值应该来自dbo.ResearchRpt的地方反转它 谢谢。您的查询使用了反连接。反连接可以通过左连接+实现,其中为空,也可以通过不存在实现。因此,将脚本转换为左连接版本,交换侧面,即可完成以下操作: SELECT ms.* FROM dbo.ResearchRpt ms LEFT JOIN OPENQUERY(MYSQL, 'SELECT * FROM ResearchRpt') my ON my.Id_report
谢谢。您的查询使用了反连接。反连接可以通过
左连接
+实现,其中为空
,也可以通过不存在
实现。因此,将脚本转换为左连接版本,交换侧面,即可完成以下操作:
SELECT ms.*
FROM dbo.ResearchRpt ms
LEFT JOIN OPENQUERY(MYSQL, 'SELECT * FROM ResearchRpt') my
ON my.Id_report = ms.Id_report
WHERE my.Id_report IS NULL
您的查询使用反联接。反连接可以通过
左连接
+实现,其中为空
,也可以通过不存在
实现。因此,将脚本转换为左连接版本,交换侧面,即可完成以下操作:
SELECT ms.*
FROM dbo.ResearchRpt ms
LEFT JOIN OPENQUERY(MYSQL, 'SELECT * FROM ResearchRpt') my
ON my.Id_report = ms.Id_report
WHERE my.Id_report IS NULL
也许你需要用别的东西来标记这个?我不认为这真的是一个MySQL问题……根据您的查询,您需要的openquery记录没有相应的ResearchRpt。那么,您期望的输出是什么?你能发布一些输入/输出示例吗?对不起,这条sql语句来自MSSQL 2005。我想得到的结果(输出)是MSSQL中不存在的记录,而不是MYSQL中的记录。您正在查找MSSQL中不存在但MYSQL中存在的记录。现在你想显示MSSQL表的列,这意味着所有列的结果都是空值,因为在MSSQL中找不到与MYSQL相关的记录。MSSQL和MYSQL中的表结构是相同的,我只是想通过比较这两个表来找出MSSQL中不存在的数据。从这里提供的MSSQL语句中,它将返回来自MYSQL而不是MSSQL的结果。有人能给我提供一个有效的声明来做这件事吗?也许你需要用别的东西来标记这个?我不认为这真的是一个MySQL问题……根据您的查询,您需要的openquery记录没有相应的ResearchRpt。那么,您期望的输出是什么?你能发布一些输入/输出示例吗?对不起,这条sql语句来自MSSQL 2005。我想得到的结果(输出)是MSSQL中不存在的记录,而不是MYSQL中的记录。您正在查找MSSQL中不存在但MYSQL中存在的记录。现在你想显示MSSQL表的列,这意味着所有列的结果都是空值,因为在MSSQL中找不到与MYSQL相关的记录。MSSQL和MYSQL中的表结构是相同的,我只是想通过比较这两个表来找出MSSQL中不存在的数据。从这里提供的MSSQL语句中,它将返回来自MYSQL而不是MSSQL的结果。有人能给我一份有效的声明吗?谢谢安德烈,这是我想要的。谢谢安德烈,这是我想要的。
-- Only exists
SELECT ms.*, my.Id_report
FROM dbo.ResearchRpt ms
LEFT JOIN OPENQUERY(MYSQL, 'SELECT * FROM ResearchRpt') my
ON my.Id_report = ms.Id_report
WHERE my.Id_report IS NOT NULL