如何比较sql中不同表行的值



我有两个不同的表…

TblDepartment : DeptId, DeptName
TblEmployee : EmpId, DeptId, DeptName

现在由于一些错误,在deptId和deptName的雇员表中有一些错误的映射(deptName与错误的deptId映射)

我想弄清楚那些deptid…

如有任何帮助,我将不胜感激。

使用NOT EXISTS获取一个部门中DeptIdDeptName不匹配的所有员工:

SELECT e.* 
FROM TblEmployee e
WHERE NOT EXISTS (
SELECT 1 
FROM TblDepartment d 
WHERE d.DeptId = e.DeptId AND d.DeptName = e.DeptName
)

比较两个表的最佳解决方案之一是使用校验和,如下面的链接:

https://www.red-gate.com/simple-talk/sql/t-sql-programming/on-comparing-tables-in-sql-server/

最新更新