Sql 如何获得不在内部联接中的人员列表?
我正试图得到确切的名单 不属于内部名单的人。我不确定我应该使用的另一个连接、不存在或不在函数中:Sql 如何获得不在内部联接中的人员列表?,sql,sql-server,Sql,Sql Server,我正试图得到确切的名单 不属于内部名单的人。我不确定我应该使用的另一个连接、不存在或不在函数中: SELECT * FROM db.user WHERE NOT EXISTS (SELECT DISTINCT email, m.id, u.status FROM db.member m INNER JOIN db.user u ON m.id=u.member_id
SELECT *
FROM db.user
WHERE NOT EXISTS (SELECT DISTINCT email, m.id, u.status
FROM db.member m
INNER JOIN db.user u
ON m.id=u.member_id
)
不幸的是,当我运行此查询时,输出为空。虽然应该会出现大约100万行。您可以尝试下面的查询,其中包含一个左外部联接
select distinct u.*
from db.user u
left outer join db.member m on m.id = u.member_id
where m.id is null
或者,如果您坚持使用内部联接,请尝试:
;with cte as (
SELECT DISTINCT m.id,
FROM db.member m
INNER JOIN db.user u
ON m.id=u.member_id
)
select *
from db.users u
where u.member_id not in (select id from cte)
您可以尝试下面的查询,它包含一个左外部联接
select distinct u.*
from db.user u
left outer join db.member m on m.id = u.member_id
where m.id is null
或者,如果您坚持使用内部联接,请尝试:
;with cte as (
SELECT DISTINCT m.id,
FROM db.member m
INNER JOIN db.user u
ON m.id=u.member_id
)
select *
from db.users u
where u.member_id not in (select id from cte)
您已将
U
用作别名,但尚未定义。另外,当您使用EXISTS()
时,不需要加入。这是EXISTS()
的正确用法:
您已将
U
用作别名,但尚未定义。另外,当您使用EXISTS()
时,不需要加入。这是EXISTS()
的正确用法:
一些示例数据和预期输出会有帮助。一些示例数据和预期输出会有帮助。两者都很好,感谢您为我提供备选方案。这两个都很好,感谢您为我提供备选方案