为什么我没有从此SQL查询中获得任何结果(MS Access)

时间:2015-07-06 15:05:03

标签: sql sql-server ms-access ms-access-2010

我有两个表,一个是Access 2010中的本地表( Employees ),另一个是SQL Server 2014数据库中的链接表( dbo_Employees )。查询在Access中运行。

作为参考,两个表都是相同的。相同的列,相同的数据。它们实际上是彼此的副本。唯一的区别是我从SQL Server表中删除了一条记录。我这样做是因为我试图运行的查询是查找员工表中与 dbo_Employees 表中存在的记录匹配的所有记录。这应该返回除了一个已删除的记录以外虽然它存在于Employees表中,但由于它不存在于dbo_Employees表中,因此它将被排除在结果中。这是查询:

select Employees.ID
from Employees
where Employees.ID IN (SELECT dbo_Employees.ID FROM dbo_Employees)

当我跑这个时,我什么都没得到。我究竟做错了什么?

1 个答案:

答案 0 :(得分:0)

您确定两个表中都有匹配的数据吗?

什么是

SELECT
    Employees.ID
    , dbo_Employees.ID
FROM Employees 
    INNER JOIN dbo_Employees ON Employees.ID = dbo_Employees.ID 

返回?它会返回任何行吗?

否则,以下查询返回什么内容?

SELECT 
    Employees.ID
    , dbo_Employees.ID
FROM Employees 
    FULL JOIN dbo_Employees ON Employees.ID = dbo_Employees.ID

您可以使用第二个查询来查看两个表中的数据匹配。查询将输出两个表中的数据,同时将匹配的ID值放在同一行上,如果没有匹配,则在一个或另一个表的相应ID列中显示NULL值。

(我知道这不是一个合理的答案,更多的是评论,但这是OP应该检查的第一件事)