Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何获得不在内部联接中的人员列表?_Sql_Sql Server - Fatal编程技术网

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()
的正确用法:


一些示例数据和预期输出会有帮助。一些示例数据和预期输出会有帮助。两者都很好,感谢您为我提供备选方案。这两个都很好,感谢您为我提供备选方案