一、概念
1.又称多表查询,当查询的字段来自多个表时,就会用到连接查询
“.”运算符取出各表中的数据
这样可以避免笛卡尔积的现象
二、sql92标准
1.等值连接
beauty.boyfriend_id与boys.d要等值才能连接成功
①.为表起别名,as或空格
注意:如果给表起了别名,那么查询的字段就不能使用原来的表名去限定
②.加条件
用and加条件
③.加分组
④.三表连接,分开写
2.非等值连接
3.自连接
三、sql99标准
1.语法
select 查询列表
from 表1 别名 【连接类型】
join 表2 别名
on 连接条件
where 筛选条件
group by 分组
having 筛选条件
order by 排序列表
2.内连接(等值连接)
①语法:
select 查询列表
from 表1 别名
inner join 表2 别名
on 连接条件
where 筛选条件
group by 分组
having 筛选条件
order by 排序列表
②三表连接:
③非等值连接
④自连接
3.外连接
①应用:一般用于一个表中有,一个表中没有的记录
②外连接的查询结果为主表中的所有记录,如果从表中有和它匹配的值,显示匹配的值,如果没有,显示NULL值
③左外连接:left join左边是主表
右外连接:left join右边是主表
左外连接:
右外连接:
④全连接=内连接+表1中有表2中没有+表2中有表1中没有
⑤交叉连接(等价于笛卡尔乘积)