MySQL之多表操作
程序员文章站
2022-05-24 10:26:05
...
MySQL多表
一、多表查询
多表查询的分类
-
内连接
查询的数据是多张表中有关联的数据
隐式内连接:
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 语法的一部分
子查询的三种情况
-
子查询的结果是一个值得时候
查询工资最高的员工是谁
select max(salary) from emp;
select * from emp where salary=(select max(salary) from emp);
-
子查询的结果是单列多行的时候
查询工资大于5000的员工,来自于哪些部门的名字
select dept_id from emp where salary>5000;
select name from dept where id in(select dept_id from emp where salary>5000);
-
子查询的结果是多行多列的时候
查询出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 条件;
上一篇: 关于php双引号的一点疑惑
下一篇: php 获取当前用户的IP