sql99 连接查询
又叫多表查询四、SQL99语法 1、内连接
相当于查多个表的公共部分
语法: select 查询列表 from 表1 别名
【连接类型】join 表2 别名
on 连接条件
where 筛选条件 group by 分组列表 having 分组后的筛选 order by 排序列表
分类:
内连接 inner
外连接:
左外连接 left [outer]
右外连接 right[outer]
全外 full[outer]
交叉连接 : cross
1内连接
分类:
1 等值连接:
例子
select last_name,department_name from employees e inner join departments d on e.xxx = d.xxx 特点: inner可以生省略 筛选条件在where后面 连接条件在on后面
2 非等值连接
就把等值连接里面的on的限制条件从等于改为其它符号
3 自连接
select last_name,department_name from employees e inner join employees d on e.xxx = d.xxx
外连接
语法:
select 查询列表 from 表1 别名 left|right|full【outer】 join 表2 别名 on 连接条件 where 筛选条件 group by 分组列表 having 分组后的筛选 order by 排序列表
应用场景:
用来查询一个表里有,另一个表里没有的情况。
外连接可以看作是 = 内连接+匹配不上的NULL值
特点:
1.外连接的查询结果为主表中的所有记录
如果主表和从表匹配则完全显示
如果不匹配则显示NULL
左右外连接
select 查询列表 from 表1 别名 left|right【outer】 join 表2 别名 on 连接条件 where 筛选条件 group by 分组列表 having 分组后的筛选 order by 排序列表
特点:
1.如果是左连接 left 左边的表是主表
如果是右连接right右边的表是主表
2 左外和右外交换两个表顺序,实现同样的效果
全外连接
交叉连接
就是一个笛卡尔乘积
select b.*,p.* from table1 b cross join table2 p;