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


表定义:courses(课程表)

样例
样例一:
表内容 : teachers


表内容:courses





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

方法一:(常规思维)

selectname
from courses
whereteacher_id in (selectidfromteacherswhereage <= 20);

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


方法二:显式内连接

selectt2.name
from teachers as t1 join courses as t2ont1.id = t2.teacher_id
wheret1.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;

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

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

  1. Js函数:根据身份证号码判断年龄是否大于18岁

    /**2 * 根据身份证号得到姓别和精确计算年龄3 */4 function analyzeIDCard(IDCard){5 //获取用户身份证号码6 var userCard = IDCard;7 ...

  2. 数据库,计算机网络、操作系统刷题笔记20

    数据库,计算机网络.操作系统刷题笔记20 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle,尤其s ...

  3. 数据库之查询表student——查询计算机系年龄在20岁以下的学生姓名

    SELECT snameFROM studentWHERE sdept = 'CS' AND sage < 20; 注意限制条件为计算机系且20岁以下

  4. C语言编程>第六周 ④ 聚会时规定:男生,超过18岁可以喝酒,没有超过18岁时,喝饮料;女生,超过20岁时,可以喝酒,没有超过20岁时,喝饮料;请输入学生性别和学生的年龄,并根据输入的情况……

    例题:聚会时规定:男生,超过18岁可以喝酒,没有超过18岁时,喝饮料:女生,超过20岁时,可以喝酒,没有超过20岁时,喝饮料:请输入学生性别和学生的年龄,并根据输入的情况来判断喝什么! 代码如下: # ...

  5. 用C语言解决:小明今年12岁,他的母亲比他大20岁,他母亲在几年之后将比他的年龄大一倍,编写一个程序计算出那时他们两人的年龄各多少?

    用C语言解决:小明今年12岁,他的母亲比他大20岁,他母亲在几年之后将比他的年龄大一倍,编写一个程序计算出那时他们两人的年龄各多少? #include <stdio.h>int main( ...

  6. 显示所有年龄大于18岁的男生

    Oracle PL/SQL plsql PL/SQL编程显式游标显示所有年龄大于18岁的男生 declarecursor p is select * from student where sex='男 ...

  7. 20岁,一个美好却又操蛋的年龄!

    今天很有幸去派发少儿嘟嘟课的宣传单页,站在小学门口,看着一群红着脸的小家伙,一边吸着鼻涕,口里喊着一些令人找不着头脑的动画台词,肆意地追捉打闹,颇有几分滑稽,不经想起自己是不是也曾这副模样呢. 20岁 ...

  8. 使用mysql内连接查询年龄_Mysql的连表查询

    若一个查询同时涉及到两个以上的表,称为连表查询 准备表 create table department( id int auto_increment PRIMARY KEY, name varchar ...

  9. 马云离职后,20岁的阿里凭什么做成“102年的企业”?

     | 作者:电商君,本文经授权转载自公众号电商报(ID:kandianshang) 让港交所改规则的"奇葩"制度 黯然销魂者,唯别而已矣! 如今,离马云于今年9月10日卸任阿里巴巴 ...

最新文章

  1. 深入浅出Android动态载入jar包技术
  2. 什么是拉电流和灌电流?
  3. 运动控制器编程_快速入门 | 篇二十一:运动控制器ZHMI组态编程简介一
  4. 玩转以太坊(Ethereum)的测试网络
  5. mysql+影响的行数+获取_我们如何获得受MySQL查询影响的总行数?
  6. 关于Qt的三种协议以及是否收费
  7. css背景上能添加文字,CSS3怎么为文字添加背景?
  8. oracle for循环
  9. 51信用卡在微服务架构下的监控平台架构实践
  10. 做了十年的功能测试,下一步该晋升测试开发还是转行软件开发?
  11. Vue 服务端渲染(SSR)、Nuxt.js - 从入门到实践
  12. 阿里云公司简介介绍资料
  13. 自动控制原理学习笔记(二)线性定常连续控制系统的数学模型
  14. asp二进制mysql_asP 读取二进制数据库
  15. 领克02linux车机怎么升级,你们想看的领克02长测报告来了,一篇读懂02的车机系统...
  16. Idea一键导入所有缺省的包
  17. windows 命令方式查找指定IP的MAC地址
  18. 【进程间通信】进程间通信方式汇总
  19. python语言最早的可用版本诞生于几几年_python语言公开发行版本诞生于哪年
  20. matlab hold on解释,matlab中hold on怎么用

热门文章

  1. (转)[茗洋芳竹]程序员常用不常见很难得的地址大全,博主很辛苦
  2. 微信小程序如何根据id不同跳转到不同的页面
  3. 5G RRC信令流程
  4. 对jdk5.0中可变长参数的理解
  5. 基于10代硬件下的HTPC/NAS一体打造全记录
  6. int *n 怎么理解
  7. 变压器下为什么放鹅卵石?鹅卵石下面又是啥?为什么要有水?
  8. 图像指数、对数增强、直方图均衡化
  9. “旁观者效应”是如何毁掉我们的代码
  10. pvs-stdio ue4_使用PVS-Studio for C#在GitLab中分析合并请求