关联查询
多表查询规则:1.确定要查询的表
2.确定查询的字段
3.表与表之间的连接条件(规律:连接条件数量=连接表-1)
-交叉连接查询(会产生笛卡尔乘积现象)
select empName,deptName
from employee,dept;
-内连接查询:只有满足结果的才能显示,null值条件不显示。(使用最频繁)
(下面两种方式,结果一样)
1.select empName,deptName
from employee,dept
where employee.deptId = dept.id;
2.select e.empName,d.deptName
from employee as e
inner join dept as d
on e.deptId = d.id;
-左外连接查询:使用左边表的数据去匹配右边表的数据,如果符合连接条件的结果则表示,如果不符合连接条件则显示null.(注意:左外连接:左边的数据一定会都显示出来)(outer可以省略)
select e.empName,d.deptName
from dept d
left outer join employee e
on d.id = e.deptId;
-右外连接查询:使用右边表的数据去匹配左边表的数据,如果符合连接条件的结果则表示,如果不符合连接条件则显示null.(注意:右外连接:右边的数据一定会都显示出来)
select e.empName,d.deptName
from employee e
right outer join dept d
on d.id = e.deptId;
-自连接查询:
select e.empName,d.empName
from employee e
left outer join employee d
on e.bossId = d.id;