SQL:检查一个表中的条目是否存在另一个表并删除重复项

时间:2016-11-22 09:13:41

标签: sql sql-server tsql

实际上和这个问题一样: sql: check if entry in table A exists in table B

以下是我的表,员工和用户

Employee           User
EmpNo              EmpNo
PositionCode

我只想检查表中的EmpNo:Employee是否已存在于表中:User 这是我使用过的代码:

SELECT Employee.EmpNo, PositionCode
FROM   Employee
WHERE  NOT EXISTS (SELECT 1 
                   FROM   User
                   WHERE  User.EmpNo= Employee.EmpNo)

现在使用该查询显示结果, 但它也会显示重复的PositionCode行。

例如:

EmpNo    PositionCode 
E098     ER1
E712     ER1
E990     ER1

所以是的,我只需要获取PositionCode(在此前的ER1中),这样我就可以将它显示到dropdownList,你不想在下拉列表中显示相同的项目吗?

2 个答案:

答案 0 :(得分:3)

我仍然不确定你想要什么。但根据我的理解,您需要与PositionCode明确相关的EmpNo。如果这是您想要的,您可以选择Distinct PositionCode,如下所示。

SELECT DISTINCT PositionCode
FROM   Employee
WHERE  NOT EXISTS (SELECT 1 
                   FROM   User
                   WHERE  User.EmpNo= Employee.EmpNo)

如果这不是你想要的,请告诉我。

答案 1 :(得分:-1)

SELECT distinct  PositionCode
FROM   Employee
WHERE  NOT EXISTS (SELECT 1 
                   FROM   User
                   WHERE  User.EmpNo= Employee.EmpNo)