首页 / MYSQL / mysql中的多表查询
mysql中的多表查询
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql中的多表查询,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2099字,纯文字阅读大概需要3分钟。
内容图文
![mysql中的多表查询](/upload/InfoBanner/zyjiaocheng/912/bc4a439cd5fc40d7b4806fa4bc9c3912.jpg)
多表查询
多表查询是建立在单表查询的基础之上的
首先来看一下单表查询的基本操作
select distinct 字段名1,字段2from 表名
where 过滤条件1,过滤条件2
group by (分组)字段1,字段2,
having 过滤条件3,过滤条件4,
order by desc(asc),
limit 5,5;
执行顺序
from,where,group by,having,
基于此 我们来认识一下笛卡尔积
create table dep(
id int,
name varchar(20)
);
create table emp(
id int primary key auto_increment,
name varchar(20),
sex enum('male','female')not null default 'male',
age int,
dep_id int
);
insert into dep values
(200,'技术'),
(201,'人力资源'),
(202,'销售'),
(203,'运营');
insert into emp(name,age,dep_id)values
('jason','male',18,200),
('egon','male',48,201),
('kevin','male',38,201),
('nick','female',28,202),
('owen','male',18,200),
('jerry','female',18,204)
;
select * from emp ,dep;
select * from emp,dep where emp.(dep_id) = dep.id
select * from emp,dep where emp.dep_id =dep.id and dep.name ='技术';
内连接(其实也是笛卡尔积,换一种形式)
select * from emp inner join dep on emp.dep_id = dep.id;
select * from emp inner join dep on emp.dep_id = dep.id where dep.name = '技术';
左连接(left inner join)
select * from emp left join dep on emp.dep_id = dep.id;
右连接(right inner join)
select * from emp right join dep on emp.dep_id = dep.id;
全连接(full join 但是mysql不支持 支持左外连接和右外连接之间加上union)
select * from emp left join dep on emp.dep_id = dep.id
union
select * from emp right join dep on emp.dep_id = dep.id;
子查询:
就是将一个查询语句的结果用括号括起来当作另外一个查询语句条件使用
查询部门是技术或者人力资源的员工信息
2每个部门最新入职的员工 思路: 先查每个部门最新入职的员工 ,再按部门对应上连表查询
规律:
表的查询结果可以作为其他表的查询条件,也可以通过起别名的方式把它作为一张虚拟表去跟其他表做关联查询
select name from dep where id in
(select dep_id emp group by dep_id
having avg(age)>25);
# exist 关键字
EXISTS关字键字表示存在。在使用EXISTS关键字时,内层查询语句不返回查询的记录,
而是返回一个真假值,True或False。
当返回True时,外层查询语句将进行查询
当返回值为False时,外层查询语句不进行查询。
select * from emp where exists (select * from dep where 1=2);
select * from emp where exists (select * from dep where id >1);
内容总结
以上是互联网集市为您收集整理的mysql中的多表查询全部内容,希望文章能够帮你解决mysql中的多表查询所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。