Join 对比:

json mysql查询 mysql json in查询_数据

json mysql查询 mysql json in查询_字段_02

Student表:

json mysql查询 mysql json in查询_字段_03

Result表(成绩表): 

json mysql查询 mysql json in查询_mysql_04

studentno:1098为无效人员。

Subject表:

json mysql查询 mysql json in查询_字段_05

 

区别对比:

操作

描述

inner join

如果两个表中至少有一个匹配,就返回行。左右两表交集。

left join

会从左表中返回所有的值,即使右表中没有匹配。以左表为基准。

right join

会从右表中返回所有的值,即使左表中没有匹配。以右表为基准。

-- 联表查询

-- 查询参加了考试的同学(学号,姓名,科目编号,分数)。需要从2个表里面查
select * from student;
select * from  result;

/*
1. 分析需求,分析查询的字段来自哪些表
2.确定使用哪种连接查询?7种
确定交叉点(这两个表中哪个数据是相同的)
判断的条件: 学生表中 studentNo = 成绩表中 studentNo 
*/

-- inner join

select s.studentno, studentname, subjectno, studentresult 
from student as s 
inner join result as r
on s.studentno = r.studentno

-- right join
select s.studentno, studentname, subjectno, studentresult 
from student s 
right join result r
on s.studentno = r.studentno

-- left join
select s.studentno, studentname, subjectno, studentresult 
from student s 
left join result r
on s.studentno = r.studentno

--查询缺考的同学
-- left join
select s.studentno, studentname, subjectno, studentresult 
from student s 
left join result r
on s.studentno = r.studentno
where studentResult is null


/*
1.在这里我们的左表是student表,右表是result表。
*/

inner join 查询结果为:

json mysql查询 mysql json in查询_json mysql查询_06

right join 查询结果为:

json mysql查询 mysql json in查询_mysql_07

left join的查询结果:

(student(左表)里面返回所有的信息,即使有的人没有参加考试,依旧可以查询出来,但是为null)

json mysql查询 mysql json in查询_mysql_08

 缺考的同学:

json mysql查询 mysql json in查询_字段_09

练习:(查询了参加考试的同学信息:学号 姓名 科目名称 分数)

/*
1. 分析需求,分析查询的字段来自哪些表 student result subject
2.确定使用哪种连接查询?
确定交叉点(这两个表中哪个数据是相同的)
判断的条件: 学生表(student)中 studentNo = 成绩表中 studentNo ,成绩表(result)中的subjectno=科目表(subject)的subjectno
*/

-- 查询了参加考试的同学信息(学号,学生姓名,科目名称,分数)
select s.studentno, studentname, subjectname, studentresult 
from student s 
INNER join result r
on s.studentno=r.studentno
INNER JOIN `subject` sub
ON r.subjectno=sub.subjectno

-- 我要查询哪些数据 select ...
-- 从哪几个表中查 from 表 XXX join 连接的表 on 交叉条件
-- 假设存在一种多张表查询,慢慢来,先查询两张表然后再慢慢增加

-- from a left join b   左为准
-- from a right join b	右为准

结果:

json mysql查询 mysql json in查询_json mysql查询_10