联表查询 join

简介: 联表查询 join

联表查询 join

操作 描述
inner join 表中有一个匹配的就返回
left join 从左表中返回所有的值,即使右表中没有匹配
right join 从右表中返回所有的值,即使左表中没有匹配

3

/*

思路:

1. 分析需求,确定查询的列来源于哪两个类

2. 确定使用哪种链接查询

   确定交叉点

   判断的条件

*/

 

-- 查询参加了考试的同学信息(学号、学生姓名、科目编号、分数)

select*from student;

select*from result;

-- 内联查询

select s.studentno,studentname,subjectno,StudentResult

from student s

innerjoin result r

on r.studentno= s.studentno

-- 右连接

select s.studentno,studentname,subjectno,StudentResult

from student s

rightjoin result r

on r.studentno= s.studentno

-- 左连接 (查询所有同学,不考试的也会查出来)

select s.studentno,studentname,subjectno,StudentResult

from student s

leftjoin 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,subjectname,StudentResult

from student s

innerjoin result r

on r.studentno= s.studentno

innerjoin`subject` sub

on sub.subjectno= r.subjectno

where 和 on 的区别

  • where条件是在临时表生成后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。
  • on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录,还会返回on条件为真的记录
  • 总结:
  • where在查询的临时表生成后,返回符合条件的结果
  • on在临时表生成时返回对应连接方式的记录(只要满足连接要求即可)
相关文章
|
2月前
|
SQL 数据库
SQl查询之单表查询,连接与嵌套查询
SQl查询之单表查询,连接与嵌套查询
35 0
|
6月前
|
SQL 关系型数据库 MySQL
MySQL数据库——多表查询(3)-自连接、联合查询、子查询
MySQL数据库——多表查询(3)-自连接、联合查询、子查询
364 1
|
7月前
|
SQL
深入了解关联查询和子查询
深入了解关联查询和子查询
73 0
|
SQL JavaScript 小程序
来了,MyBatisPlus的join联表查询!
来了,MyBatisPlus的join联表查询!
来了,MyBatisPlus的join联表查询!
JOIN多表关联查询
JOIN多表关联查询
56 0
联合查询和子查询
联合查询和子查询
基础DQL(数据查询)—— 内连接、外连接、自连接(含实例)
在内连接的例子中,其实会有小的弊端,假设数据中相同属性的部门名称,或者是员工表内部门名称为空的话,就无法通过内连接查询出所有的数据(NULL值无法匹配),会造成一定的误差,所以我们就需要用到外连接来弥补一下。接下来我们就来认识一下外连接
236 0
基础DQL(数据查询)—— 内连接、外连接、自连接(含实例)
|
关系型数据库 MySQL
MySQL基础-自连接&联合查询
自连接查询,顾名思义,就是自己连接自己,也就是把一张表连接查询多次。我们先来学习一下自连接的查询语法:
309 0
|
关系型数据库 MySQL
MySQL基础-多表查询之内连接
内连接的语法分为两种: 隐式内连接、显式内连接。先来学习一下具体的语法结构。
108 0
|
存储 SQL 小程序
小程序中的多表联合查询
小程序中的多表联合查询
小程序中的多表联合查询