首页 > 其他分享 >初级练习[5]:多表查询——多表连接

初级练习[5]:多表查询——多表连接

时间:2024-09-11 15:23:25浏览次数:13  
标签:多表 课程 course 查询 stu 初级 score id

目录

多表查询:表联结(续)

 课程编号为"01"且课程分数小于60,按分数降序排列的学生信息

查询所有课程成绩在70分以上的学生的姓名、课程名称和分数,按分数升序排列

 查询该学生不同课程的成绩相同的学生编号、课程编号、学生成绩

 查询课程编号为“01”的课程比“02”的课程成绩高的所有学生的学号

 查询学过编号为“01”的课程并且也学过编号为“02”的课程的学生的学号、姓名

查询学过“李体音”老师所教的所有课的同学的学号、姓名

查询学过“李体音”老师所讲授的任意一门课程的学生的学号、姓名

查询没学过"李体音"老师讲授的任一门课程的学生姓名

查询至少有一门课与学号为“001”的学生所学课程相同的学生的学号和姓名

 按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩


多表查询:表联结(续)

环境准备看如下链接

环境准备icon-default.png?t=O83Ahttps://blog.csdn.net/qq_45115959/article/details/142057624?spm=1001.2014.3001.5502

 课程编号为"01"且课程分数小于60,按分数降序排列的学生信息

hive>
select
    s.stu_id,
    s.stu_name,
    s.birthday,
    s.sex,
    t1.score
from student_info s
join (
    select
        stu_id,
        course_id,
        score
    from score_info
    where score < 60 and course_id = '01'
    ) t1
on s.stu_id=t1.stu_id
order by t1.score desc;

结果

s.stu_id        s.stu_name      s.birthday      s.sex   t1.score
017           范冰冰        1992-07-04        女      58
008           吴京          1994-02-06        男      56
007           陈坤          1999-04-09        男      48
013           蒋欣          1997-11-08        女      47
019           邓紫棋        1994-08-31        女      46
012           杨紫          1996-12-21        女      44
018           李冰冰        1993-09-24        女      38

查询所有课程成绩在70分以上的学生的姓名、课程名称和分数,按分数升序排列

hive>
select
    s.stu_id,
    s.stu_name,
    c.course_name,
    s2.score
from student_info s
join (
    select
        stu_id,
        sum(if(score >= 70,0,1)) flage
    from score_info
    group by stu_id
    having flage =0
    ) t1
on s.stu_id = t1.stu_id
left join score_info s2 on s.stu_id = s2.stu_id
left join course_info c on s2.course_id = c.course_id;

结果

s.stu_id      s.stu_name    c.course_name  s2.course
002     胡歌    语文    74
002     胡歌    数学    84
002     胡歌    英语    87
002     胡歌    体育    100
016     周冬雨  语文    71
016     周冬雨  数学    89
016     周冬雨  英语    71
016     周冬雨  体育    94

 查询该学生不同课程的成绩相同的学生编号、课程编号、学生成绩

hive>
select
    sc1.stu_id,
    sc1.course_id,
    sc1.score
from score_info sc1 
join score_info sc2 on sc1.stu_id = sc

标签:多表,课程,course,查询,stu,初级,score,id
From: https://blog.csdn.net/qq_45115959/article/details/142140806

相关文章

  • sql 分组查询并新增序号
    在SQL中,你可以使用ROW_NUMBER()函数来为结果集中的每一行新增一个序号。这个序号是基于某个排序条件的分区排序结果。以下是一个简单的例子,假设我们有一个名为students的表,它有两列:class_id和student_name。我们想为同一个班级内的学生创建一个序号,按照student_name排序:SELECT......
  • 企业工商信息查询-企业工商信息查询接口-企业工商信息api
    1、接口介绍通过企业名称/社会统一信用代码/工商注册号三者其中之一快速查询全国企业工商数据,可查得企业工商基本信息。如:企业工商基本信息,企业法人,经营状态,注册资本,以及股东,高管,分支机构,失信等延伸信息。2、接口地址接口地址:https://www.wapi.cn/api_detail/89/211.htm......
  • oql4j对象查询语言
    一、简介1.1介绍oql4j全称ObjectQueryLanguageForJava,即java版本的对象查询语言,支持使用编写查询语言快速的搜索出符合条件的对象,简化对象的过滤处理操作。目前支持where条件的过滤和select的映射查询,后续将支持update更新等操作。二、使用指南2.1依赖说明基于jdk8......
  • MongoDB延迟查询
    在MongoDB中,查看副本集成员之间的副本延迟可以通过以下步骤进行:使用rs.status()命令:这个命令提供了副本集的详细状态信息,包括每个成员的延迟情况。在MongoDBshell中,你可以执行以下命令:rs.status()这个命令会返回一个包含副本集所有成员状态的对象。在返回的对......
  • MySQL 查询优化秘籍:让你的数据库查询飞起来
    在数据库应用中,高效的查询性能至关重要。MySQL作为广泛使用的关系型数据库,掌握一些常用的查询优化方法可以极大地提升系统的响应速度和性能。今天,我们就来一起探讨常用的优化MySQL查询方法及示例。一、索引优化索引就像是数据库的导航地图,能够快速定位数据。选择合适的索引......
  • MySQL之多表查询和子查询
    一、多表查询1、概述MySQL中的多表查询允许用户在单个查询语句中联合两个或多个表,依据表之间的关联关系来提取所需数据,这种技术在处理复杂数据关系时尤为常见和重要。简单讲就是多表查询就是从两个或多个表中检索数据,当需要结合不同表中的信息时,通常会使用JOIN子句来实现......
  • MySQL进阶(三)--多表查询
    3,多表查询多表查询顾名思义就是从多张表中一次性的查询出我们想要的数据。我们通过具体的sql给他们演示,先准备环境DROPTABLEIFEXISTSemp;DROPTABLEIFEXISTSdept;#创建部门表 CREATETABLEdept(didINTPRIMARYKEYAUTO_INCREMENT,dname......
  • sql查询字段截取
    SELECTCASEWHENSUBSTR(code,-2)='00'THENSUBSTR(code,1,LENGTH(code)-2)ELSEcodeENDAScodeFROMtest_table;说明:如果code最后两位是00的话,就截取掉,如果不是的话,就直接取code。......
  • MySQL(六)查询连续出现N次问题总结
    连续问题的本质单调递增的等差数列例如游戏连续签到7天可以获得奖品,连续出现3次的数字求解方法(1)确定什么属性连续出现三次,即哪一属性连续,哪一属性相等(2)增加额外的等差递增列,然后进行作差分组案例查询至少连续出现3次的数字Logs表:idnum11213142......
  • 保险公司如何用到IP地址查询?
    随着高新技术的日新月异,各大保险公司的服务方式也在逐渐完善,他们也在用更先进的数据分析技术来优化业务流程,提升客户体验和增强风险管理能力。其中,IP地址查询也是他们赖以依靠的技术之一。那么保险公司是如何在他们的领域去使用IP地址查询的呢?身份验证与反欺诈在保险行业中,......