多表连接查询JOIN详解_怎么用左外连接查询没有参加考试哦的信息_Z s L的博客-程序员秘密

JOIN对比

在这里插入图片描述在这里插入图片描述

-- 查询参加了考试的同学信息(学号,学生姓名,科目编号,分数)
SELECT * FROM student;
SELECT * FROM result;

/*
1.分析需求,确定查询的列来源于两个表,student result,连接查询
2.确定使用哪种连接查询?(内连接)

*/
SELECT s.studentno,studentname,subjectno,studentresult
FROM student s
INNER JOIN result r
ON r.studentno=s.studentno

-- 右连接(也可实现) 
SELECT s.studentno,studentname,subjectno,StudentResult 
FROM student s 
RIGHT JOIN result r 
ON r.studentno = s.studentno

-- 等值连接 
SELECT s.studentno,studentname,subjectno,StudentResult FROM student s , result r WHERE r.studentno = s.studentno

-- 左连接 (查询了所有同学,不考试的也会查出来) 
SELECT s.studentno,studentname,subjectno,StudentResult 
FROM student s 
LEFT JOIN result r 
ON r.studentno = s.studentno

-- 查一下缺考的同学(左连接应用场景)
SELECT s.studentno,studentname,subjectno,StudentResult 
FROM student s
LEFT JOIN result r
ON r.`studentno`=s.`studentno`
WHERE `studentresult` IS NULL

-- 思考题:查询参加了考试的同学信息(学号,学生姓名,科目名,分数) 
/*
思路
1.需求分析,分析查询的字段来自哪些表,student、result、subject(连接查询)
2.确定使用哪种类型连接查询?7种
确定交叉点(这两个表中哪些数据是相同的)
判断的条件:学生表中的studentNo=成绩表 studentNo
*/
SELECT s.studentno,studentname,subjectname,StudentResult 
FROM student s 
INNER JOIN result r 
ON r.studentno = s.studentno 
INNER JOIN `subject` sub
ON sub.subjectno = r.subjectno
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zangzangJuxy/article/details/107681253

智能推荐

计划任务crond、系统服务管理工具chkconfig/systemctl_weixin_33724059的博客-程序员秘密

2019独角兽企业重金招聘Python工程师标准>>> ...

列属性:RowGUIDCol、Identity 和 not for replication_weixin_34206899的博客-程序员秘密

在SQL Server中,创建数据表,需要为表设置合适的属性和约束,例如,自增列,非空,主键等,以满足业务的需求,一般来说,数据表存储的实体都应该唯一标识,使用ID列或GUID列来充当候选主键是可以的,相应地,数据表的列(Column)有两个特殊的属性:RowGUIDCol:用于标识UniqueIdentifier 类型的数据列,该列可以通过内置函数 $ROWGUID 来引用;Iden...

归并排序链表的实现——学习笔记_归并排序链表实现_jjwwwww的博客-程序员秘密

归并排序是效率非常高的一种排序方式,和快速排序一样用了分治的思想。分治法的精髓在于将一个复杂问题分割成为多个简单的子问题,然后将子问题逐个解决,最终合并在一起以后就是复杂问题的解了。这篇文章主要讲归并排序链表的实现方式,如果想了解数组的归并排序,可移步这里。归并排序的思想其实挺简单的,简而言之就是将数列分割成子序列,先对子序列进行排序,再将排好序的子序列合并成一个完整的数列。具体例子...

项目中安装和配置webpack_Yabeei的博客-程序员秘密

配置自动打包配置html-webpack-plugin配置加载器配置postCSS自动添加css的兼容前缀

随便推点

Opengl 优秀文章收集(持续更新)_TADICAN的博客-程序员秘密

OpenGL快速入门教程,非常经典的教程,可以助你快速入门。http://nehe.gamedev.net/.opengl 颜色混合右手坐标系要点:坐标系用到3个手指, 大拇指(X),食指(Y)和中指(Z)。 Opengl 怎么成像要点:可以把near点平面(Z的法平面)当做屏幕,立体模型上的所有点穿透near点法平面汇聚于原点(0,0,0)(所谓相机聚焦点),

RO27 - RemObjects 3.0 SDK 综述_remobjects sdk_henreash的博客-程序员秘密

 RO27 - RemObjects 3.0 SDK 综述 RemObjects SDK 3.0 简介中我们看到了他的新特性和工具,这些都可以给我们开发方式带来很大的改进. 这篇文档我们看看关于产品的概况和令人兴奋的新特性. Service Tester 用处分布式系统提供的灵活性和适用性是传统的CS结构无法比拟的. 但是开发和测试分布式系统通常复杂费时.在基于服务的客户端程序开发

MSTSC 常见问题_mstsc黑屏_大任Dren的博客-程序员秘密

有时候的不当操作,可以使Windows服务器或vps远程桌面出现蓝屏或者黑屏!遇到此问题,不 要急急忙忙的让机房值班给你重启机器,因为此时除了远程连接不可用,其他一切应用是不受影响的,网站依旧可以打开,FTP依旧可以上传下载,不属于紧急故 障。点任务管理器导致蓝屏或黑屏? 如果是国外服务器,大部分是安装了中文语言包出现这种情况,如果您看得懂英文,建议设置为英文界面即可(如何修改wind

From Java code to Java heap_http//64.top_onyas的博客-程序员秘密

https://www.ibm.com/developerworks/library/j-codetoheap/

CAN总线的位时序与参数设置_can位时序设置_Black_Hans的博客-程序员秘密

CAN总线的位时序与参数设置@ [TOC]CAN的位时序构成CAN总线的每个位(Bit)的周期 Tbit = 1 / Baudrate。根据CAN规范,每个位的时间内又可细分成4段:同步段(Synchronization Segment,Tss)传播段(Propagation Segment, Tps)相位缓冲段1(Phase Buffer Segment 1, Tpbs1)相位缓...

动态规划-砝码称重_称砝码问题 动态规划_ThXe的博客-程序员秘密

Problem Description设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其总重<=1000),要求:输入方式:a1 a2 a3 a4 a5 a6 (表示1g砝码有a1个,2g砝码有a2个,…,20g砝码有a6个)输出方式:N(N表示用这些砝码能称出的不同重量的个数,但不包括一个砝码也不用的情况)Input只有一行,有六个整数,每个数之间用一个空格隔开。Output输出N,N表示用这些砝码能称出的不同重量的个数,但不包括一个砝码

推荐文章

热门文章

相关标签