lintcode-2058 · 删除所有年龄小于 21 岁的老师的课程
【摘要】 描述请编写 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 | 讲师姓名 |
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 | 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 | 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 | 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)