Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 MySQL如何选择OpenQuery Not In语句_Sql Server 2005_Openquery - Fatal编程技术网

Sql server 2005 MySQL如何选择OpenQuery Not In语句

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

下面的语句将从OpenQuery(MYSQL)返回值

我想在结果值应该来自dbo.ResearchRpt的地方反转它


谢谢。

您的查询使用了反连接。反连接可以通过
左连接
+
实现,其中为空
,也可以通过
不存在
实现。因此,将脚本转换为左连接版本,交换侧面,即可完成以下操作:

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