从一个表中查找另一个表中不存在的记录。用户从第三个表映射

时间:2016-01-04 02:22:39

标签: sql sql-server

我是SQL&的新手亲自动手。

寻找一种有效的方法来获取用户表中存在但不存在于临时表中的用户(*)

有三张桌子:

Temp:

member_no | name

User:

endUserId | name 

Login:

member_no | endUserId

我试过这个但没有工作:

SELECT * 
FROM User LEFT OUTER JOIN
     Temp
      ON User.endUserId = (SELECT TOP 1 e.endUserId
                           FROM User e JOIN
                                LOGIN l
                                ON e.endUserId = l.endUserId 
                           WHERE l.username = Temp.member_no
                          )

提前致谢

1 个答案:

答案 0 :(得分:2)

如果您希望用户不是临时用户,则可以想到not existsnot in

select u.*
from user u
where not exists (select 1
                  from temp t join
                       login l
                       on t.memberno = l.memberno
                  where l.endUserId = u.endUserId
                 );