MySQL 13 DQL → 自连接(联表查询)&& 分页和排序

4.6 DQL → 自连接(联表查询)


自连接:自己的表和自己的表 进行个连接,实际上 T喵^ 的也是 联表查询核心在于 一张表拆成 两张一样的表。

在这里插入图片描述

  • 父类表
categoryidcategoryName
2信息技术
3软件开发
5美术设计
  • 子类表
pidcategoryidcategoryName
34数据库
28办公信息
36web开发
57PS技术

有些时候,明明 可以用 一张表 来表示 所有的数据关系和存储数据,但是 非得用两张表!这就使得 有些逻辑比较强的程序员 把两张表 弄成一个 表来 存储数据,最常见的 就是 这种 “树形结构” 的父子类关系。

select father.categoryName as '父类字段',son.categoryName '子类字段' from category as father INNER JOIN category as son on son.pid = father.categoryid;

你会发现 在 sql 的世界里 select 语句 查询的结果,是一个 特殊的 独立的存在!并不是 存储的表,而是 一个 新的 数据表结构。我们称为 “查询表或结果表”。所以 我们可以根据 同一个 表的原数据,来 进行两次 查询,生成 两个 独特的表!!!


4.7 排序

分页和排序 在项目和业务中 是非常实用的功能。

所有的数据 都需要进行 排序 和 分页吧,这是必须的!!!

  1. 根据某个字段降序排序
    在查询语句的语句后面加上 order by 字段名 desc
select s.studentno,studentname,r.subjectno,subjectname,studentresult from student as s left join result as r on r.studentno = s.studentno inner join `subject` as sub on sub.subjectno=r.subjectno order by studentresult desc;

在这里插入图片描述

  1. 根据某个字段升序排序
    在查询语句的语句后面加上 order by 字段名 asc
select s.studentno,studentname,r.subjectno,subjectname,studentresult from student as s left join result as r on r.studentno = s.studentno inner join `subject` as sub on sub.subjectno=r.subjectno order by studentresult asc;

在这里插入图片描述


4.7.1 分页

语法limit 起始数据(从0开始),页面显示的数据条数 这个其实的 数据,是从 下标 0 开始计数的。

在这里插入图片描述
在这里插入图片描述

select s.studentno,studentname,r.subjectno,subjectname,studentresult from student as s left join result as r on r.studentno = s.studentno inner join `subject` as sub on sub.subjectno=r.subjectno order by studentresult asc
limit 0,2;
select s.studentno,studentname,r.subjectno,subjectname,studentresult from student as s left join result as r on r.studentno = s.studentno inner join `subject` as sub on sub.subjectno=r.subjectno order by studentresult asc
limit 1,2;
select s.studentno,studentname,r.subjectno,subjectname,studentresult from student as s left join result as r on r.studentno = s.studentno inner join `subject` as sub on sub.subjectno=r.subjectno order by studentresult asc
limit 0,4;

在这里插入图片描述
在这里插入图片描述
where 条件 是 在 join on 后面的 条件,如果写在 其它 条件的后面 可能不会生效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值