lintcode-2058 · 删除所有年龄小于 21 岁的老师的课程

举报
搞前端的半夏 发表于 2021/11/30 22:30:02 2021/11/30
【摘要】 描述请编写 SQL 语句,删除课程表 courses 中教课的教师年龄 age 小于 21 岁的课程 。表定义 1: teachers (教师表)列名类型注释idint unsigned主键namevarchar讲师姓名emailvarchar讲师邮箱ageint讲师年龄countryvarchar讲师国籍表定义 2: courses (课程表)列名类型注释idint unsigned主键...

描述

请编写 SQL 语句,删除课程表 courses 中教课的教师年龄 age 小于 21 岁的课程 。

表定义 1: teachers (教师表)

列名 类型 注释
id int unsigned 主键
name varchar 讲师姓名
email varchar 讲师邮箱
age int 讲师年龄
country varchar 讲师国籍

表定义 2: courses (课程表)

列名 类型 注释
id int unsigned 主键
name varchar 课程名称
student_count int 学生总数
created_at date 课程创建时间
teacher_id int unsigned 讲师 id

**

  • 查询返回列名需要与样例输出的列名大小写一致。
  • 如果输入数据为空,则返回为空。

样例

样例 一

表内容 1: teachers (教师表)

id name email age country
1 Eastern Heretic eastern.heretic@gmail.com 20 UK
2 Northern Beggar northern.beggar@qq.com 53 CN
3 Western Venom western.venom@163.com 28 USA
4 Southern Emperor southern.emperor@qq.com 20 JP
5 Linghu Chong NULL 18 CN

表内容 2: courses (课程表)

id name student_count created_at teacher_id
1 Senior Algorithm 880 2020-06-01 4
2 System Design 1350 2020-07-18 3
3 Django 780 2020-02-29 3
4 Web 340 2020-04-22 4
5 Big Data 700 2020-09-11 1
6 Java P6+ 1660 2018-05-13 3
7 Java P6+ 780 2019-01-19 3
8 Data Analysis 500 2019-07-12 1
10 Object Oriented Design 300 2020-08-08 4
12 Dynamic Programming 2000 2018-08-18 1

在运行你的 SQL 语句之后,我们将执行 SELECT * FROM courses,表应返回:

id name student_count created_at teacher_id
2 System Design 1350 2020-07-18 3
3 Django 780 2020-02-29 3
6 Java P6+ 1660 2018-05-13 3
7 Java P6+ 780 2019-01-19 3

样例 二

表内容 1: teachers (教师表)

id name email age country
1 Eastern Heretic eastern.heretic@gmail.com 20 UK
2 Northern Beggar northern.beggar@qq.com 18 CN
3 Western Venom western.venom@163.com 19 USA
4 Southern Emperor southern.emperor@qq.com 17 JP
5 Linghu Chong NULL 18 CN

表内容 2: courses (课程表)

id name student_count created_at teacher_id
1 Senior Algorithm 880 2020-06-01 4
2 System Design 1350 2020-07-18 3
3 Django 780 2020-02-29 3
4 Web 340 2020-04-22 4
5 Big Data 700 2020-09-11 1
6 Java P6+ 1660 2018-05-13 3
7 Java P6+ 780 2019-01-19 3
8 Data Analysis 500 2019-07-12 1
10 Object Oriented Design 300 2020-08-08 4
12 Dynamic Programming 2000 2018-08-18 1

在运行你的 SQL 语句之后,我们将执行 SELECT * FROM courses,表应返回:

id name email age country

样例二中没有符合条件的数据,所以输出中只包含表头而没有数据

题解

首先挑选出所有age小于21的老师的id,然后根据找到的id删除对应的courses中课程。

DELETE FROM courses 
WHERE teacher_id  IN (select t.id FROM teachers t WHERE t.age<21);
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。