自连接及联表查询练习

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

自连接


数据表与自身进行连接

需求:从一个包含栏目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】数据库查询:内连接、外连接、自连接、子查询、多表查询
194 0
|
5月前
|
SQL 关系型数据库 MySQL
MySQL数据库——多表查询(3)-自连接、联合查询、子查询
MySQL数据库——多表查询(3)-自连接、联合查询、子查询
150 1
|
6月前
|
SQL 数据库
联合查询(多表查询)
联合查询(多表查询)
54 0
基础DQL(数据查询)—— 内连接、外连接、自连接(含实例)
在内连接的例子中,其实会有小的弊端,假设数据中相同属性的部门名称,或者是员工表内部门名称为空的话,就无法通过内连接查询出所有的数据(NULL值无法匹配),会造成一定的误差,所以我们就需要用到外连接来弥补一下。接下来我们就来认识一下外连接
218 0
基础DQL(数据查询)—— 内连接、外连接、自连接(含实例)
|
关系型数据库 MySQL
MySQL基础-自连接&联合查询
自连接查询,顾名思义,就是自己连接自己,也就是把一张表连接查询多次。我们先来学习一下自连接的查询语法:
304 0
|
SQL 存储 关系型数据库
看完就懂的连表查询
看完就懂的连表查询
看完就懂的连表查询
|
关系型数据库 MySQL 开发者
连接查询之外连接 | 学习笔记
快速学习连接查询之外连接。
109 0
连接查询之外连接 | 学习笔记
|
关系型数据库 MySQL Oracle
MySQL表连接(内连接、交叉连接、外连接、联合查询)
MySQL表连接(内连接、交叉连接、外连接、联合查询) 一、内连接(INNER JOIN)    SELECT * FROM 表1 INNER JOIN 表2   ON   条件    SELECT * FROM 表1 INNER JOIN 表2   WHERE  条件    典型的联接运算,使用像 =  或 之类的比较运算符)。
9619 0