1350. 院系无效的学生

院系表: Departments

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| id            | int     |
| name          | varchar |
+---------------+---------+
id 是该表的主键
该表包含一所大学每个院系的 id 信息

 

学生表: Students

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| id            | int     |
| name          | varchar |
| department_id | int     |
+---------------+---------+
id 是该表的主键
该表包含一所大学每个学生的 id 和他/她就读的院系信息

 

写一条 SQL 语句以查询那些所在院系不存在的学生的 id 和姓名

解题方案:

1.select c.id as id, c.`name` as `name`from
(select a.id as id, a.`name` as `name`, b.id as `b_id` from Students a
left join Departments b
on a.department_id =b.id) as c
where c.b_id is null
 
2. 
select id, `name` from Students where department_id not in(select id from departments)

 

 总结:工作中尽量不使用in进行过滤

其中,mysql in的相关资料可以借鉴https://zhuanlan.zhihu.com/p/90745848

posted on 2020-10-16 08:36  random_boy  阅读(110)  评论(0编辑  收藏  举报

导航