MySQL之多表操作

MySQL多表

一、多表查询

     多表查询的分类

                                       

  1. 内连接

查询的数据是多张表中有关联的数据

隐式内连接:

select * from A,B where 条件;

显示内连接:

select * from A inner join B on 条件

 

2、外连接

左外连接:

select * from A left [outer] join B on 条件

右外连接:

select *from A right [outer] join B on 条件

左外连接特点:


以左表为基准去匹配右表中的数据,如果能匹配到,将数据展示,如果匹配不到,将左边的数据展示,右边中的数据展示为null


右外连接特点:


以右表为基准去匹配左表中的数据,如果能匹配到,将数据展示,如果匹配不到,将右表的数据展示,左表中的数据展示为null


3、子查询

概述:

将上一条select 语句结果作为另外一条select 语法的一部分

 

子查询的三种情况

  1. 子查询的结果是一个值得时候

查询工资最高的员工是谁

select max(salary) from emp;

select * from emp where salary=(select max(salary) from emp);
  1. 子查询的结果是单列多行的时候

查询工资大于5000的员工,来自于哪些部门的名字

select dept_id from emp where salary>5000;

select name from dept where id in(select dept_id from emp where salary>5000);
  1. 子查询的结果是多行多列的时候

查询出2011年以后入职的员工信息,包括部门名称

select *from where join_date>"2010-12-31";

select *from (select *from where join_date>"2010-12-31")ee,dept where ee.dept_id = dept.id;

结论:

子查询结果只要是 单列,肯定在 where后面作为 条件

select 查询字段 from 表名 where 字段=(子查询);

子查询结果只要是 多列,肯定在 from 后面作为 表

select 查询字段 from (子查询) 表别名 where 条件;

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值