ORACLE 多表链接查询SQL语法有两种,一种是标准SQL多表联查语句结构(left join | right join ...),一种是ORACLE自身多表联查语句结构(使用"+")
1、标准SQL多表链接查询(以oracle自带emp,dept表为例):
--标准SQL链接语法中左链接查询,是以left join关键字为中心,left join关键字左边的表为基表查询(右关联相反)
select emp.empno,emp.ename,dept.dname,dept.loc from dept left join emp on dept.deptno=emp.deptno --以dept为基表
--标准SQL链接语法中on后面链接条件即便相反,对查询结果无影响
select emp.empno,emp.ename,dept.dname,dept.loc from emp left join dept on emp.deptno=dept.deptno --以emp为基表
select emp.empno,emp.ename,dept.dname,dept.loc from emp left join dept on dept.deptno=emp.deptno --以emp为基表
--而oracle中自己定义的多表链接语法结构,是以链接条件中(+)在哪边,就以(+)对边表为基本查询,跟from后面表名顺序没关系
SELECT emp.ename,emp.deptno,dept.dname FROM emp,dept WHERE emp.deptno=dept.deptno(+) --以emp表为基本
SELECT emp.ename,emp.deptno,dept.dname FROM emp,dept WHERE emp.deptno(+)=dept.deptno --以dept表为基本