2014-01-25 127 views
0

我删除了一个Empid = 13从HrEmployee表中的记录,当我使用select查询来过滤empId = 13然后它显示没有结果,这很好,但这个查询仍然显示empID = 13记录为什么是这是吗?记录仍然出现后删除

SELECT distinct 
dbo.HrEmployee.EmplID, 
dbo.HrEmployee.EmplName, 
dbo.AtdRecord.RecDate, 
dbo.AtdRecord.RecTime, 
dbo.HrDept.DeptName 
FROM dbo.HrDept 
inner JOIN dbo.HrEmployee 
ON dbo.HrDept.DeptID = dbo.HrEmployee.DeptID 
inner JOIN dbo.AtdRecord 
ON dbo.HrEmployee.EmplID = dbo.AtdRecord.EmplID 
where HrEmployee.EmplID = 13 
+0

你确定你删除它删除了? ATDRecord.empid的fk约束可能阻止了这种情况的发生,您需要先删除它。 – 2014-01-25 08:22:50

回答

1

因为有些记录仍的EmpID = 13 exsits表dbo.AtdRecord和你正在使用INNER JOIN试试这个:

SELECT distinct 
dbo.HrEmployee.EmplID, 
dbo.HrEmployee.EmplName, 
dbo.AtdRecord.RecDate, 
dbo.AtdRecord.RecTime, 
dbo.HrDept.DeptName 
FROM dbo.HrDept 
left outer JOIN dbo.HrEmployee 
ON dbo.HrDept.DeptID = dbo.HrEmployee.DeptID 
left outer JOIN dbo.AtdRecord 
ON dbo.HrEmployee.EmplID = dbo.AtdRecord.EmplID 
where HrEmployee.EmplID = 13 
0

不知道您的数据的具体情况,我也会检查AtdRecord表中的EmpID = 13。另外,尝试删除JOIN到HrDept,然后使用HrEmployee和AtdRecord表进行查询。基本上,简化查询并确定导致问题的原因。

0

这将链接到你的问题在你的其他职位, select statement working unexpectedly

您有两张相同的表格,原始的预定表格和[master]数据库中的一张。

你可能运行针对主数据库,其中记录EMPID 13仍然存在此查询,但你从原始表

相关问题