mysql - NOT IN 不工作的 SQL

标签 mysql sql oracle select notin

我有2个表,用户和 friend 表,用户有uID, friend 也有UID,我想检查用户表中存在但 friend 表中不存在的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

最佳答案

试试这个

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

关于mysql - NOT IN 不工作的 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19490519/

相关文章:

php - 根据选择mysql php更新总价

mysql - 每三个月自动编辑查询 MySQL 的 WHERE 条件

php - 如果 PHP 和 MySQL 中的所有字段都不为空,则返回 True 或 False

python - 如何使用 pyodbc 从 ms access 数据库中选择最后 5 分钟的数据?

mysql - 如果 id 值不存在另一个表,则 SQL 连接

SQL Server Pivot 用于计算连接表中的实例

java - 在 JDBC for Oracle 中设置客户端信息

c# - Oracle中如何获取存储过程参数类型和大小?

mysql - 当控制台从计数 (*) 中给我正确的数字时,为什么 C# 一直从查询中给我 -1?

sql - Oracle - 仅从列中选择最大值