多表查询分类: 内连接查询,外连接查询, 子查询
内连接查询
隐式内连接
使用where条件消除无用的数据
语法:
select * from 表名1,表名2 where 表名1.外键字段= 表名2.id;
显式内连接
语法:
1.全写
select 字段列表 from 表名1 inner join 表名2 on 条件
2.简写:可以省略inner
select 字段列表 from 表名1 join 表名2 on 条件
1 示例
2 示例
外连接查询
注意: outer是可以省略的
左外连接查询
语法: 查询的是左边所有数据以及其交集部分
select 字段列表 from 表1 left outer join 表2 on 条件
右外连接查询
语法: 查询的右表所有数据以及交集部分
select 字段列表 from 表1 right outer join 表2 on 条件;
子查询
子查询就称为嵌套查询
子查询不同的情况:
- 子查询的结果是
单行单列
时
子查询可以作为条件使用运算符来判断, 运算符: > < >= <=..
- 子查询的的结果是
多行单列
时
子查询可以作为条件使用in来判断
- 子查询的结果是
多行多列
时
子查询可以作为一张虚拟表