0

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

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

4

3 回答 3

1

尝试这个

SELECT b.userId 
FROM users b 
WHERE NOT EXISTS (
   SELECT * 
   FROM user_friend
   WHERE b.userId = user_friend.userId
);
于 2013-10-21T09:35:42.970 回答
0

解决您的问题

SELECT  U.UserId
FROM    Users U
EXCEPT
SELECT  F.UserId
FROM    Friends F
于 2013-10-21T09:41:49.413 回答
0

试试这个:

SELECT b.userId 
FROM users b 
where b.userId NOT IN(
  select user_friend.userId 
  from user_friend
)
于 2013-10-21T09:28:09.217 回答