mysql - sql加入where和1-n连接

标签 mysql sql

我们有 2 个表:

UserTable

userid   username
1        test
2        test2
3        test3


UserStatus

statusid userid status
1        1      1
2        1      3
3        1      7
4        2      1

现在我们需要一个用户列表,其中包含状态为 3 的用户。

有什么想法吗?

最佳答案

您可以使用NOT EXISTS:

select u.userid,
  u.username
from usertable u
where not exists (select s.userid
                  from userstatus s
                  where s.status = 3
                    and u.userid = s.userid);

参见 SQL Fiddle with Demo

关于mysql - sql加入where和1-n连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15551314/

相关文章:

mysql 使用第二个表中的搜索词搜索文本

mysql - 同时在同一数据库上进行相同查询但结果不同?? [大查询]

mysql - 带有连接的 SQL 聚合给出了错误的结果

php - 使用 MySQL 和 PHP 每天更新字段

sql - 如何确定 TimescaleDB 表的大小?

php - 将所有表和字段更改为 MYSQL 中的 utf-8-bin 排序规则的脚本

php - Codeigniter 3 中的 mysql 查询

sql - 嵌套NVL查询问题

java - 无法在网页中查看数据库中存储的记录

mysql - 如何在存储过程中创建变量游标?