mysql - 在 NOT IN MySQL 中使用 UNION 子查询
问题描述
我想在 MySQL 的 not null 中使用联合子查询。查询如下所示。
SELECT s.student_id
, s.student_name
FROM students` s
WHERE s.student_id NOT IN (
SELECT student_id
FROM free_students
UNION
SELECT student_id
FROM paid_students
)
如果 UNION 子查询返回 null,则查询结果也变为 null。如何处理这类情况?
解决方案
我会使用一个存在子句,其中两个实际上是:
SELECT s.student_id, s.student_name
FROM students s
WHERE NOT EXISTS (SELECT 1 FROM free_students fs WHERE s.student_id = fs.student_id) AND
NOT EXISTS (SELECT 1 FROM paid_students ps WHERE s.student_id = ps.student_id);
推荐阅读
- android - 防止在 webview 中暴露本地文件的 URI
- vue.js - 如何访问路由器文件中的 Vuex 存储?Vue
- c++ - oat++ : 将 DTO 放入 DTO 列表中
- node.js - 如何在 Mac 上升级 Node.js?
- c++ - C++:如果使用自定义类(不是指针),则不排序 std::map 和 std::set
- python - 针对 Scrypt 组合哈希验证 python 密码:(设置+盐+哈希)
- user-interface - 增强用户通知:消息框→整体方法
- backup - 您如何验证 OpenStack 实例是否正在备份?有没有办法使用 GUI 来做到这一点?
- java - 尝试降低时间复杂度时 Pi 测试突变幸存
- powerapps - PowerApps 筛选库和搜索功能