我有两个表,一个是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)
当我跑这个时,我什么都没得到。我究竟做错了什么?
答案 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应该检查的第一件事)