MySQL实现多表查询语句介绍
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,下面一起来了解下MySQL实现多表查询语句介绍,相信大家看完肯定会受益匪浅,文字在精不在多,希望MySQL实现多表查询语句介绍这篇短内容是你想要的。创建表# 创建表create table depar
千家信息网最后更新 2026年11月01日MySQL实现多表查询语句介绍
下面一起来了解下MySQL实现多表查询语句介绍,相信大家看完肯定会受益匪浅,文字在精不在多,希望MySQL实现多表查询语句介绍这篇短内容是你想要的。
创建表
# 创建表create table department(id int,name varchar(20));create table employee1(id int primary key auto_increment,name varchar(20),sex enum('male','female') not null default 'male',age int,dep_id int);# 插入数据insert into department values(200,'技术'),(201,'人力资源'),(202,'销售'),(203,'运营');insert into employee1(name,sex,age,dep_id) values('egon','male',18,200),('alex','female',48,201),('tom','male',38,201),('yuanhao','female',28,202),('lidawei','male',18,200),('jinkezhou','female',18,204);# 查看表mysql> select * from employee1;+----+-----------+--------+------+--------+| id | name | sex | age | dep_id |+----+-----------+--------+------+--------+| 1 | egon | male | 18 | 200 || 2 | alex | female | 48 | 201 || 3 | tom | male | 38 | 201 || 4 | yuanhao | female | 28 | 202 || 5 | lidawei | male | 18 | 200 || 6 | jinkezhou | female | 18 | 204 |+----+-----------+--------+------+--------+6 rows in set (0.00 sec)mysql> select * from department;+------+--------------+| id | name |+------+--------------+| 200 | 技术 || 201 | 人力资源 || 202 | 销售 || 203 | 运营 |+------+--------------+4 rows in set (0.00 sec)多表连接查询
交叉连接
交叉连接:不适用任何匹配条件。生成笛卡尔积
mysql> select * from employee1 ,department;
内连接
内连接:找两张表共有的部分,相当于利用条件从笛卡尔积结果中筛选出了正确的结果。(只连接匹配的行)
# 找两张表共有的部分,相当于利用条件从笛卡尔积结果中筛选出了正确的结果#department没有204这个部门,因而employee表中关于204这条员工信息没有匹配出来mysql> select * from employee1,department where employee1.dep_id=department.id;#上面用where表示的可以用下面的内连接表示,建议使用下面的那种方法mysql> select * from employee1 inner join department on employee1.dep_id=department.id;# 也可以这样表示哈mysql> select employee1.id,employee1.name,employee1.age,employee1.sex,department.name from employee1,department where employee1.dep_id=department.id;
左连接left
优先显示左表全部记录。
#左链接:在按照on的条件取到两张表共同部分的基础上,保留左表的记录mysql> select * from employee1 left join department on department.id=employee1.dep_id;mysql> select * from department left join employee1 on department.id=employee1.dep_id;
右连接right
优先显示右表全部记录。
#右链接:在按照on的条件取到两张表共同部分的基础上,保留右表的记录mysql> select * from employee1 right join department on department.id=employee1.dep_id;mysql> select * from department right join employee1 on department.id=employee1.dep_id;
全部连接join
mysql> select * from department full join employee1;
符合条件多表查询
示例1:以内连接的方式查询employee和department表,并且employee表中的age字段值必须大于25,
即找出公司所有部门中年龄大于25岁的员工
mysql> select * from employee1 inner join department on employee1.dep_id=department.id and age>25;
示例2:以内连接的方式查询employee和department表,并且以age字段的升序方式显示
mysql> select * from employee1 inner join department on employee1.dep_id=department.id and age>25 and age>25 order by age asc;
子查询
#1:子查询是将一个查询语句嵌套在另一个查询语句中。#2:内层查询语句的查询结果,可以为外层查询语句提供查询条件。#3:子查询中可以包含:IN、NOT IN、ANY、ALL、EXISTS 和 NOT EXISTS等关键字#4:还可以包含比较运算符:= 、 !=、> 、<等
示例:
# 查询平均年龄在25岁以上的部门名mysql> select name from department where id in ( select dep_id from employee1 group by dep_id having avg(age) > 25 );# 查看技术部员工姓名mysql> select name from employee1 where dep_id = (select id from department where name='技术');# 查看小于2人的部门名mysql> select name from department where id in (select dep_id from employee1 group by dep_id having count(id) < 2) union select name from department where id not in (select distinct dep_id from employee1);# 提取空部门 #有人的部门mysql> select * from department where id not in (select distinct dep_id from employee1);
看完MySQL实现多表查询语句介绍这篇文章后,很多读者朋友肯定会想要了解更多的相关内容,如需获取更多的行业信息,可以关注我们的行业资讯栏目。
查询
语句
条件
结果
技术
部分
部门
员工
方式
示例
笛卡尔
人力
人力资源
信息
内容
基础
字段
年龄
更多
行业
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
科技股互联网
A股互联网金融科技公司
互联网电商科技
互联网科技垄断
亿策互联网科技
互联网科技股有哪些
深圳互联网科技怎么样
科技与互联网哪个更好
世界互联网科技公司市值排名
智腾互联网科技有限公司
未来五年的互联网科技
消费医药和互联网科技
互联网金融科技展
群盈汇互联网科技有限公司
互联网科技年终奖
上海乐五互联网科技有限公司
玉溪新华互联网科技怎么选
互联网金融金融科技
承德科技产业互联网平台
互联网的黑科技实验室
天津市摩尔互联网科技
中关村互联网科技集团
浩特互联网科技
汉立互联网科技有限公司联系电话
山东星卡互联网科技有限公司官网
陕西云淼互联网科技公司
九思连强互联网电子科技有限公司
珠海东科互联网科技有限公司
广州智享互联网科技
现代科技的标志之一的互联网