lintcode-2072 · 查询年龄不大于 20 岁的教师所教的所有课程的课程名

举报
搞前端的半夏 发表于 2021/11/30 22:33:26 2021/11/30
【摘要】 描述请编写 SQL 语句, 联合教师表(teachers)和课程表(courses),查询课程表中年龄不大于 20 岁的教师所教的所有课程的课程名(name)。表定义:teachers(教师表)列名类型注释idint unsigned主键namevarchar讲师姓名emailvarchar讲师邮箱ageint讲师年龄countryvarchar讲师国籍表定义:courses(课程表)列名...

描述

请编写 SQL 语句, 联合教师表(teachers)和课程表(courses),查询课程表中年龄不大于 20 岁的教师所教的所有课程的课程名(name)。
表定义:teachers(教师表)

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

表定义:courses(课程表)

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

**

  • 如果 teachers 中 存在 age 为 null 的时候,则跳过该数据。
  • 如果 teachers 中 age 全为 null 的时候,或者 teachers 表数据为空,则返回 null。

样例

样例一:

表内容 : teachers

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

表内容:courses

id name student_count created_at teacher_id
1 Senior Algorithm 880 2020-6-1 09:03:12 4
2 System Design 1350 2020-7-18 10:03:12 3
3 Django 780 2020-2-29 12:03:12 3
4 Web 340 2020-4-22 13:03:12 4
5 Big Data 700 2020-9-11 16:03:12 1
6 Artificial Intelligence 1660 2018-5-13 18:03:12 3
7 Java P6+ 780 2019-1-19 13:03:12 3
8 Data Analysis 500 2019-7-12 13:03:12 1
10 Object Oriented Design 300 2020-8-8 13:03:12 4
12 Dynamic Programming 2000 2018-8-18 20:03:12 1

在运行你的 SQL 语句之后,表应返回:

name
Big Data
Data Analysis
Dynamic Programming

样例二:

表内容 : teachers

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

表内容:courses

id name student_count created_at teacher_id
1 Senior Algorithm 880 2020-6-1 09:03:12 4
2 System Design 1350 2020-7-18 10:03:12 3
3 Django 780 2020-2-29 12:03:12 3
4 Web 340 2020-4-22 13:03:12 4
5 Big Data 700 2020-9-11 16:03:12 1
6 Artificial Intelligence 1660 2018-5-13 18:03:12 3
7 Java P6+ 780 2019-1-19 13:03:12 3
8 Data Analysis 500 2019-7-12 13:03:12 1
10 Object Oriented Design 300 2020-8-8 13:03:12 4
12 Dynamic Programming 2000 2018-8-18 20:03:12 1

在运行你的 SQL 语句之后,表应返回:

name

因为输入样例中不存在年龄不大于 20 岁的老师,查询到的课程名为空,所以这里只展示了标题,没有数据

大家好,我是半夏👴,一个刚刚开始写文的沙雕程序员.如果喜欢我的文章,可以关注➕ 点赞 👍 加我微信:frontendpicker,邀你进群,一起学习交流前端,成为更优秀的工程师~关注公众号:半夏话前端,了解更多前端知识!点我探索新世界!

题解:

解法1

使用join连接teachers和coureses

select a.name
from courses a join teachers b on a.teacher_id=b.id
where b.age<=20

解法2

SELECT c.name name
from teachers t, courses c
where t.id = c.teacher_id and t.age <= 20

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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