多表连接查询JOIN详解

简介: 多表连接查询JOIN详解
JOIN对比

20200730084950667.png

20200730085003471.png


-- 查询参加了考试的同学信息(学号,学生姓名,科目编号,分数)
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


相关文章
|
5月前
|
SQL 关系型数据库 MySQL
⑧【MySQL】数据库查询:内连接、外连接、自连接、子查询、多表查询
⑧【MySQL】数据库查询:内连接、外连接、自连接、子查询、多表查询
171 0
|
4月前
|
SQL 关系型数据库 MySQL
MySQL数据库——多表查询(3)-自连接、联合查询、子查询
MySQL数据库——多表查询(3)-自连接、联合查询、子查询
71 1
|
5月前
|
SQL 数据库
联合查询(多表查询)
联合查询(多表查询)
50 0
|
5月前
|
SQL
深入了解关联查询和子查询
深入了解关联查询和子查询
60 0
|
11月前
JOIN多表关联查询
JOIN多表关联查询
51 0
|
SQL HIVE
hive:条件查询、join关联查询、分组聚合、子查询
hive:条件查询、join关联查询、分组聚合、子查询
716 0
hive:条件查询、join关联查询、分组聚合、子查询
联合查询和子查询
联合查询和子查询
sql中的join连接之内连接、左外连接、右外连接
实际应用中所需要的数据,经常会需要查询两个或两个以上的表。这种查询两个或两个以上数据表或视图的查询叫做连接查询。连接查询通常建立在存在相互关系的父子表之间。
124 0
sql中的join连接之内连接、左外连接、右外连接
|
存储 SQL 小程序
小程序中的多表联合查询
小程序中的多表联合查询
小程序中的多表联合查询
|
关系型数据库 MySQL 数据库
MySQL数据库(21):连接查询 join-1
MySQL数据库(21):连接查询 join
106 0