2014-01-25 131 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仍然存在此查詢,但你從原始表

相關問題