第七部分-MySQL-003多表操作

前提:
一对多关系:部门表、员工表

一、内连接
1、隐式内连接

select t1.name 员工姓名,t1.gender 员工性别,t2.name 员工部门 from emp t1,dept t2 where t1.deptid=t2.id;

2、显式内连接

select * from emp [inner] join dept on deptid = dept.id;

二、外连接
1、左外连接:查询的左表所有的数据+交集

select * from emp left [outer] join dept on deptid = dept.id;

ps:注意外连接和内连接的区别,内连接只能查找到交集,外连接查找到所有数据+交集
三、子查询
1、子查询结果为单行单列
需求:
查询工资最高的员工信息
工资最高查询出来是单行单列;然后根据员工工资等于这个最大值,查询员工信息

select max(salary) from emp;
select * from emp where salary = (select max(salary) from emp;);

2、子查询结果为多行单列
需求:
查询财务部和市场部的所有员工信息
先查询财务部和市场部的id;然后查询所有员工信息

select id from dept where name = '财务部' or name = '市场部';
select * from emp where deptid in (select id from dept where name = '财务部' or name = '市场部';);

3、子查询结果为多行多列:子查询的结果作为一张表,然后多表查询
需求:
查询员工入职日期在2011-11-11之后的员工信息和部门信息

select * from emp where join_date > '2011-11-11';
select * from (select * from emp where emp.join_date > '2011-11-11';) t1 left join demp t2 on t1.deptid = t2.id; 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值