自连接及联表查询练习

简介: 自连接及联表查询练习

自连接


数据表与自身进行连接

需求:从一个包含栏目ID , 栏目名称和父栏目ID的表中 查询父栏目名称和其他子栏目名称

-- 编写SQL语句,将栏目的父子关系呈现出来 (父栏目名称,子栏目名称) 
-- 核心思想:把一张表看成两张一模一样的表,然后将这两张表连接查询(自连接) 
SELECT a.categoryName AS '父栏目',b.categoryName AS '子栏目' 
FROM category AS a,category AS b 
WHERE a.`categoryid`=b.`pid`
-- 思考题:查询参加了考试的同学信息(学号,学生姓名,科目名,分数) 
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
-- 查询学员及所属的年级(学号,学生姓名,年级名) 
SELECT studentno AS 学号,studentname AS 学生姓名,gradename AS 年级名称 
FROM student s 
INNER JOIN grade g 
ON s.`GradeId` = g.`GradeID`
-- 查询科目及所属的年级(科目名称,年级名称) 
SELECT subjectname AS 科目名称,gradename AS 年级名称 
FROM SUBJECT sub 
INNER JOIN grade g 
ON sub.gradeid = g.gradeid
-- 查询 数据库结构-1 的所有考试结果(学号 学生姓名 科目名称 成绩) 
SELECT s.studentno,studentname,subjectname,StudentResult 
FROM student s 
INNER JOIN result r 
ON r.studentno = s.studentno 
INNER JOIN `subject` sub 
ON r.subjectno = sub.subjectno 
WHERE subjectname='数据库结构-1'
相关文章
|
6月前
|
SQL 关系型数据库 MySQL
⑧【MySQL】数据库查询:内连接、外连接、自连接、子查询、多表查询
⑧【MySQL】数据库查询:内连接、外连接、自连接、子查询、多表查询
209 0
|
5月前
|
SQL 关系型数据库 MySQL
MySQL数据库——多表查询(3)-自连接、联合查询、子查询
MySQL数据库——多表查询(3)-自连接、联合查询、子查询
234 1
|
6月前
|
关系型数据库
单表查询、多表查询相关练习
单表查询、多表查询相关练习
51 9
|
6月前
|
SQL 数据库
联合查询(多表查询)
联合查询(多表查询)
54 0
|
6月前
(头哥)多表查询与子查询
(头哥)多表查询与子查询
121 0
|
6月前
|
SQL
深入了解关联查询和子查询
深入了解关联查询和子查询
66 0
联合查询和子查询
联合查询和子查询
基础DQL(数据查询)—— 内连接、外连接、自连接(含实例)
在内连接的例子中,其实会有小的弊端,假设数据中相同属性的部门名称,或者是员工表内部门名称为空的话,就无法通过内连接查询出所有的数据(NULL值无法匹配),会造成一定的误差,所以我们就需要用到外连接来弥补一下。接下来我们就来认识一下外连接
223 0
基础DQL(数据查询)—— 内连接、外连接、自连接(含实例)
|
关系型数据库 MySQL
MySQL基础-自连接&联合查询
自连接查询,顾名思义,就是自己连接自己,也就是把一张表连接查询多次。我们先来学习一下自连接的查询语法:
304 0