1.连接查询
(1)内连接 [inner] join
1)定义:查询表A、B的交集数据,只有两个表都有的数据才会出现。
2)语法:
-- 隐式内连接 select 字段列表 from 表1,表2... where 条件; -- 显式内连接 select 字段列表 from 表1 [inner] join 表2 on 条件;
(2)(左/右)外连接 left/right [outer] join
1)左外连接:查询表1所有数据和两表的交集数据;
select 字段列表 from 表1 left [outer] join 表2 on 条件;
2)右外连接:查询表2所有数据和两表的交集数据。
select 字段列表 from 表1 right [outer] join 表2 on 条件;
【tips】左、右外连接可以互相转换。
2.子查询
(1)定义:嵌套查询。
(2)分类
根据子查询的结果(单行单列、多行单列、多行多列)不同,子查询的作用也有不同:
1)单行单列:作为条件值,用=、!=、>、<等进行条件判断。
select 字段列表 from 表名 where 字段名 = (子查询);
2)多行单列:作为条件值,用In进行条件判断。
select 字段列表 from 表名 where 字段名 in (子查询);
3)多行多列:作为一个虚拟表。
select 字段列表 from (子查询) where 条件;