2016-08-24 59 views
0

我有2个数据库表,一个包含用户信息,另一个包含正在执行的特定公司角色。显示PK选择语句在另一个表中未引用时的结果

一些包含在这些数据库中的字段的如下:

表1:UserInformation Username, name, surname, RoleID (FK Reference to Table2) etc

表2:RoleInformation ID (PK and ref from Table 1 RoleID), RoleName etc

程序:

我有一个下拉列表,我在填充SQL查询的结果。 我写的程序将被HR用来将未使用的公司角色分配给选定的公司用户,以启动公司内的其他流程。

到目前为止,我还没有经验,只有SQL能够写入比超长插入语句复杂得多一点lol 有人可以帮助我构建一个SQL查询,返回当前未分配给用户的角色。

伪代码:

select RoleName 
from Table2 
where the ID is not referenced/used in Table1 

我希望我正确地描述的场景...

在此先感谢!

回答

0

我认为你正在寻找NOT EXISTSNOT IN

select RoleName 
    from Table2 t2 
    where not exists (select 1 
         from Table1 t1 
        where t1.RoleID = t2.RoleInformationID); 
0

您可以使用子查询和IN操作符,是这样的:

select RoleName from Table2 where RoleInformationID not in (select distinct(RoleID) from Table1) 
+0

这个工程就像一个魅力,谢谢你的帮帮我! – Tiaan

相关问题