查询年龄不大于 20 岁的教师所教的所有课程的课程名(Lintcode刷题)

简介: 题目如下描述请编写 SQL 语句, 联合教师表(teachers)和课程表(courses),查询课程表中年龄不大于 20 岁的教师所教的所有课程的课程名(name)。表定义:teachers(教师表)表定义:courses(课程表)样例样例一:

题目如下


描述


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


表定义:teachers(教师表)



表定义:courses(课程表)



样例

样例一:

表内容 : teachers



表内容:courses





很明显,这个题可能用到连接查询(因为我们需要根据教师表的年龄作为限制条件,来查到可能表中相应的课程。所以我们需要两张表。但是我们还可以按照常规的思维模式。分开查询)


方法一:(常规思维)


select
    name
from 
    courses 
where
    teacher_id in (
        select
            id
        from
            teachers
        where
            age <= 20
    );


解析,我们要查询的是课程名字,那么select name是没有问题这样写的,然后这个可能名字来自courses表,所以from courses表。然后条件是什么呢?条件是老师的年龄小于等于20,年龄在teachers表中,所以我们写出基本的条件,然后利用这个条件,我们对courses表的所要查的课程名进行限制,两表只有对应的id可以进行限制,所以我们从限制符合该条件的id进行限制我们要获取的课程名。(id作为了连接的条件)


方法二:显式内连接


select
    t2.name
from 
    teachers as t1 join courses as t2
    on
        t1.id = t2.teacher_id
where
    t1.age <= 20;


判断出连接查询,就直接进行写代码进行连接,分别将id作为连接条件,然后限制年龄,这样也可以直接求出来。


方法三:左连接查询


select c.name as name 
from courses c 
left join teachers t on c.teacher_id=t.id 
where t.age<=20;


左连接就是以左表为基准,按照左表匹配,右表没有的就会为置为空,而右连接反之。


相关文章
|
前端开发 Java
|
SQL 分布式计算 数据可视化
Tableau与大数据:可视化工具在大数据分析中的应用
【4月更文挑战第8天】Tableau是一款领先的数据可视化工具,擅长于大数据分析,提供广泛的数据连接器,支持多源整合。它与Hadoop、Spark等深度集成,实现高效大数据处理。Tableau的拖拽式界面和交互式分析功能使得非技术人员也能轻松探索数据。在实战中,Tableau用于业务监控、数据storytelling和自助式分析,推动数据民主化,提升决策效率。未来,Tableau将持续创新,扩展生态系统,并保障数据安全与合规性,助力企业最大化数据价值。
956 0
|
算法 计算机视觉
图像处理之基于高斯金字塔的图像融合
图像处理之基于高斯金字塔的图像融合
169 3
|
Web App开发 JavaScript
Vue 项目中使用 debugger 在 chrome 谷歌浏览器中失效以及 console.log 指向去了 vue.js 代码
Vue 项目中使用 debugger 在 chrome 谷歌浏览器中失效以及 console.log 指向去了 vue.js 代码
1534 0
|
缓存 Linux API
实战!使用Docker安装OnlyOffice
ONLYOFFICE,简单地说,就是将 Word 、Excel、PPT 3 大办公套件搬到了云端,只需要一个浏览器即可以在线使用 Office 的各种功能
7350 1
实战!使用Docker安装OnlyOffice
|
SQL 关系型数据库 MySQL
(十六)MySQL调优篇:单机数据库如何在高并发场景下健步如飞?
在当前的IT开发行业中,系统访问量日涨、并发暴增、线上瓶颈等各种性能问题纷涌而至,性能优化成为了现时代中一个炙手可热的名词,无论是在开发、面试过程中,性能优化都是一个常谈常新的话题。而MySQL作为整个系统的后方大本营,由于是基于磁盘的原因,性能瓶颈往往也会随着流量增大而凸显出来。
1683 0
|
JSON 测试技术 Go
Go Kit中读取原始HTTP请求体的方法
Go Kit中读取原始HTTP请求体的方法
|
数据可视化 数据挖掘 Python
Scipy 中级教程——信号处理
Scipy 中级教程——信号处理【1月更文挑战第8篇】
765 2
|
弹性计算 缓存 测试技术
2核4g服务器能支持多少人访问?阿里云2核4G服务器并发数测试
2核4g服务器能支持多少人访问?阿里云2核4G服务器并发数测试,2核4G服务器并发数性能测试,阿小云账号下的2核4G服务器支持20人同时在线访问,然而应用不同、类型不同、程序效率不同实际并发数也不同,2核4G服务器的在线访问人数取决于多个变量因素