我怎样才能从SQL查询中获得准确的结果

时间:2019-05-25 07:33:43

标签: sql sql-server

鉴于:我有两个表,第一个表包含分支机构列表,第二个表包含分配给员工的分支机构。

问题:我无法获得准确的查询结果,它仅生成分配的分支。我想查看分支的完整列表,但已省略了已分配的分支。

这是我尝试过的SQL:

SELECT Idx,BranchName
FROM BranchList
WHERE Idx IN (SELECT Idx FROM AssignedBranch where EmpId = 20001)

请查看屏幕截图以获取我想要的结果:

enter image description here

2 个答案:

答案 0 :(得分:2)

您的描述和图像矛盾。您说了I want to see the full list of branches,但图片只显示了未分配的分支

根据图片,查询应该

select *
from   BranchList b
where  not exists
       (
           select *
           from   AssignedBranch a
           where  a.Idx = b.Idx
           and    a.EmpId = 20001
       )

答案 1 :(得分:2)

您的描述和结果图像不同。根据您的图片结果,查询将为

SELECT Idx,BranchName
    FROM BranchList
    WHERE Idx NOT IN (SELECT Idx FROM AssignedBranch where EmpId = 20001)