mysql的多表查询实现方法
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇文章给大家分享的是有关mysql的多表查询实现方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。多表查询有3种方式,分别是:1、传统
千家信息网最后更新 2026年11月03日mysql的多表查询实现方法
本篇文章给大家分享的是有关mysql的多表查询实现方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
多表查询有3种方式,分别是:1、传统方式,包括左外连接查询,右外连接查询 ,完全外链接查询;2、子查询方式,包括单行查询,多行查询;3、聚合查询方式,包括求和,平均查询,记录总数。
多表查询有3种方式,分别是:
一、传统方式
/*-- 传统连接方式 --*/ select e.ename,d.dname from dept d , emp e where d.deptno = e.deptno /*--natural join 两张表中只有一个同名栏位时行连接 --*/ select e.ename,d.dname from dept d natural join emp e /*--using 两个表中有多个同名栏位时 --*/ select e.ename,d.dname from dept d join emp e using(deptno)
1、左外连接查询
/*--左外连结 左表的全部记录(部门表中的所有记录:demp)-- */ /*--方式1--*/ select e.ename,d.dname from dept d left outer join emp e on d.deptno = e.deptno /*--方式2--*/ select e.ename,d.dname from dept d , emp e where d.deptno = e.deptno(+)
2、右外连接查询
/*--左外连结 左表的全部记录(部门表中的所有记录:demp)-- */ /*--方式1--*/ select e.ename,d.dname from dept d left outer join emp e on d.deptno = e.deptno /*--方式2--*/ select e.ename,d.dname from dept d , emp e where d.deptno = e.deptno(+)
3、完全外链接查询
/*--完全外连结(匹配与不匹配)-- (包括部门表及员工表中的所有记录)*/ select e.ename,d.dname from dept d full outer join emp e on d.deptno = e.deptno
二、子查询(单、多行)
1、单行查询
/*--子查询(单行,多行)--*/ select * from emp where sal > (select avg(sal) from emp) /*--单行子查询可以引用(=,>,>=,<,<=,<>)操作符 --*/ select * from emp e where e.deptno=(select d.deptno from dept d where d.deptno=1 )
2、多行查询
/*--多行子查询可以引用(in,any,all)操作符--*/ select * from emp e where e.deptno in(select d.deptno from dept d) /*-- any 比较返回值中的任何一个,其中一个满足,则返回true --*/ select * from emp e where e.sal < any(select sal from emp where deptno=2) /*-- all 比较返回值中的所有,全部满足,则返回true --*/ select * from emp e where e.sal < all(select sal from emp where deptno=2)
三、聚合查询(求和,平均,记录总数)
1、求和,平均查询
/*--求和,平均 --*/ select sum(sal),avg(sal) from emp select avg(nvl(sal,0)) from emp
2、记录总数
/*--记录总数 --*/ select count(*) from emp select count(memo) from emp /*--统计该栏非空记录 --*/ select count(distinct(sex)) from emp /*--去掉重复记录 --*/ /*-- group by --*/ select e.deptno,sum(e.sal) from emp e group by e.deptno /*-- group by having --*/ select e.deptno,avg(e.sal) from emp e group by e.deptno having avg(e.sal) > 4500
以上就是mysql的多表查询实现方法,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
查询
方式
多行
总数
传统
部门
方法
操作符
更多
知识
篇文章
链接
实用
时行
两个
只有
员工
多个
就是
工作会
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技股
湖北九亚互联网络科技有限公司
科技互联网项目
上海致骋互联网科技
上海万想互联网科技
开启互联网科技时代小说
宁波青枫互联网科技有限公司
互联网科技中介
北京华百购互联网科技有限公司
常德市电业局互联网科技部
宁夏科技产业互联网案例
互联网科技扶贫时间
亳州好赞互联网科技有限公司
互联网在线教育科技创业
威龙国际互联网科技公司
科技互联网海报
科技互联网的核心竞争力
黑科技 体验场景 互联网大会
每天都有哪些好的互联网科技
广州智享互联网科技
伟宏互联网科技
中国互联网科技股
互联网与科技金融数据
互联网金融 金融科技
互联网科技的英文
互联网女皇 腾讯科技
赫美联合互联网科技
亿人帮互联网科技
苏州五指互联网络科技有限
广州智享互联网科技