在MSSQL中查找两个表中没有资产的用户列表?

时间:2015-11-27 18:07:59

标签: sql sql-server sql-server-2008

抱歉,我对SQL很陌生,我正在尝试执行以下操作。

我有两个表,“资产”和“用户”,结构如下:

用户表

userName  fullName        department   location
aanderson Andrew Anderson Sales        South Wing
bjackson  Bernice Jackson Marketing    Ontario
csmith    Chris Smith     Supply Chain South Wing
etc.

资产表

userName  srpNum category  model  etc.
aanderson 004120 Laptop    E5520
csmith    001030 Laptop    E5550

我想要返回没有资源的所有用户。因此,从上面我想返回bjackson,因为资产表中没有列出任何资产。

我该怎么做?我想我必须在查询中加入这两个表。我尝试了类似select userName from users, asset where count(*) = 0的内容,但这显然不是合适的语法。

非常感谢!

2 个答案:

答案 0 :(得分:0)

以下是我发现的有效方法:

select userName
from users u
where NOT EXISTS (select userName from asset a where a.userName = u.userName)

答案 1 :(得分:0)

如果您想使用联接,可以尝试:

SELECT left u.username FROM users as u left join asset as On u.username = a.username WHERE a.username is null