不在不工作的SQL

时间:2013-10-21 09:19:00

标签: mysql sql oracle select notin

我有2个表,用户和朋友表,用户有uID,朋友也有UID,我想检查Users表中的UID,但不存在于Friends Table中, 我正在使用此查询

SELECT b.userId 
FROM users b 
where b.userId NOT IN(
  select userId 
  from user_friend
)

但是它返回了我所有的用户表行... 我错过了什么吗? MYSQL中的示例数据

Users Table
1
2
3
4
Friends Table
2
3
4

我实际上需要得到1

3 个答案:

答案 0 :(得分:1)

试试这个

SELECT b.userId 
FROM users b 
WHERE NOT EXISTS (
   SELECT * 
   FROM user_friend
   WHERE b.userId = user_friend.userId
);

答案 1 :(得分:0)

试试这个:

SELECT b.userId 
FROM users b 
where b.userId NOT IN(
  select user_friend.userId 
  from user_friend
)

答案 2 :(得分:0)

为您的查询而努力

SELECT  U.UserId
FROM    Users U
EXCEPT
SELECT  F.UserId
FROM    Friends F