Oracleには、内部結合、左外部結合、右外部結合、完全外部結合、相互結合など、さまざまな結合があります。このSQLチュートリアルでは、それぞれのOracle結合構文と例を示します
内部結合の構文と例
2つの表の例と構文
SELECT EMP.EMPNO、EMP.ENAME、DEPT.DEPTNO、DEPT.DNAME
FROM EMP、DEPT
whereEMP。 DEPTNO=DEPT。 DEPTNO;
または
ANSI構文
EMPでEMP.EMPNO、EMP.ENAME、DEPT.DEPTNO、DEPT.DNAME
FROM EMP INNER JOIN DEPT
を選択します。 DEPTNO=DEPT。 DEPTNO;
または
SELECT EMP.EMPNO、EMP.ENAME、DEPT.DEPTNO、DEPT.DNAME
FROM EMP INNER JOIN DEPT
using(DEPTNO);
複数のテーブルの内部結合の例
SELECT EMP.EMPNO、EMP.ENAME、DEPT.DEPTNO、DEPT.DNAME、REGION.REGION_NAME
FROM EMP、DEPT、REGION
whereEMP。 DEPTNO=DEPT。 DEPTNO
およびDEPT.REGION_ID=REGION.REGION_NAME;
または
SELECT EMP.EMPNO、EMP.ENAME、DEPT.DEPTNO、DEPT.DNAME、REGION.REGION_NAME
FROM EMP
内部結合DEPTonEMP。 DEPTNO=DEPT。 DEPTNO
内部はDEPT.REGION_ID=REGION.REGION_NAME;
または
SELECTEMP.EMPNO、EMP.ENAME、DEPT.DEPTNO、DEPT.DNAME、REGION.REGION_NAME
FROM EMP internal join DEPT using(DEPTNO)
internal join REGION using(REGION_ID);
クロスジョインの構文と例
SELECT EMPNO、ENAME、DEPT.DEPTNO、DNAME FROM EMP、DEPT;
または
SELECT EMPNO、ENAME、DEPT.DEPTNO、DNAME FROM EMP cross join DEPT;
左外部結合の構文と例
empno、ename、emp.deptno、dname
from emp
LEFT OUTER JOIN dept
on emp.deptno =dept.deptno;
- 署名構文
select empno、ename、emp.deptno、dname
from emp、dept where emp.deptno =dept.deptno(+);
- NULLが予想される側にあり、右側にあります
右外部結合の構文と例
empno、ename、dept.deptno、dname
from emp
right OUTER JOIN dept
on emp.deptno =dept.deptno;
- 署名構文
empno、ename、dept.deptno、dname
from emp、dept where emp.deptno(+)=dept.deptno;
- NULLが予想される側にあり、左側にあります
完全な外部結合の構文と例
select empno,ename,dept.deptno,dname
from emp
full OUTER JOIN dept
on emp.deptno=dept.deptno;
関連記事
Oracle結合
Oracleでのネストされたループ結合
Oracleでのさまざまな結合方法
Oracleでのハッシュ結合