mysql - 在一个表中查找与不同表中的其他记录没有关联的记录
问题描述
我有 3 张桌子:
list_routes
pk_route_id route_code route_name route_description
3 J1 IND IND-DPS
4 J4 ADT ADT_DPS
tbl_stu_route
pk_stu_route_id fk_stu_cls_id fk_route_id
2 13 3
tbl_stu_class
pk_stu_cls_id fk_stu_id
13 56
现在我想要实现的是在 MYSQL 中编写查询,它将从 list_routes 中获取我的记录,这些记录在 tbl_stu_class 中没有关联或附加,因此例如在上述场景中它应该给我输出:
pk_route_id route_code route_name route_description
4 J4 ADT ADT_DPS
我使用左外连接编写了以下查询
SELECT
a.pk_route_id,
a.route_code,
a.route_name,
a.route_description
FROM
list_routes a
left outer join tbl_stu_route b on a.pk_route_id=b.fk_route_id
left outer join tbl_stu_class c on b.fk_stu_cls_id=c.pk_stu_cls_id
where c.fk_stu_id ='56'
但输出是
pk_route_id route_code route_name route_description
3 J1 IND IND-DPS
我不确定我哪里出错了。你能告诉我如何实现这一点吗?
解决方案
如果你想获得不存在的记录,那么只需过滤掉IS NULL
SELECT a.*
FROM list_routes a
left outer join tbl_stu_route b on a.pk_route_id=b.fk_route_id
left outer join tbl_stu_class c on b.fk_stu_cls_id=c.pk_stu_cls_id
where b.fk_route_id is null;
推荐阅读
- python - Librosa 情节澄清
- javascript - 无法导入@material-ui/core/styles/MuiThemeProvider
- c# - 为什么字符串方法(对象对象)可能与 Func 不匹配
- c - 是否在 NaCL 库中替换了 Curve25519?
- python-3.x - 输出未在外部文本文件中打印
- node.js - 如何使用 find() 函数从 MongoDB 调用数据?
- sql - 无法基于 JOINS 执行连接两个表
- c - 如何在输入长度未知的情况下读取以逗号分隔的数字?
- java - 当我按下返回导航按钮时活动重新启动
- git - git file getting deleted again and again