多表查询
多表查询查询有如下几种
(1)合并结果集:union,union all
(2)连接查询(列的合并):
内连接:
外连接:
左外连接
右外连接
自然连接
(3)子查询
##外连接
##员工表emp是主表,去匹配dept
select
*
from
emp e
left join
dept d
on
e.deptno=d.deptno;
##部门表 是主表,然后去匹配 员工表
select
*
from
emp e
right join
dept d
on
e.deptno=d.deptno;
##自然连接
select
*
from
emp e
natural join
dept d ;
#子查询
###查询工资 高于 JONES 员工
(1)先查JONES的工资
select sal from emp where ename=‘JONES’;
(2)他的工资作为条件
select * from emp where sal >(第一步得到工资)
(3)合并
select
*
from
emp
where
sal>(select sal from emp where ename =‘JONES’);
#查询与SCOTT同一个部门的员工
select deptno from emp where ename=‘SCOTT’;
select
*
from
emp
where
deptno=(select deptno from emp where ename=‘SCOTT’);