Der er forskellige sammenføjninger i Oracle som indre sammenføjning, venstre ydre sammenføjning, højre udvendig sammenføjning, fuld ydre sammenføjning, krydssammenføjning. Denne SQL-tutorial giver Oracle join-syntaks på hver af dem med eksempler
Inner Join-syntaks og eksempel
Eksempler på to tabeller og syntaks
VÆLG EMP.EMPNO,EMP.ENAME, DEPT.DEPTNO,DEPT.DNAME
FRA EMP , DEPT
hvor EMP. DEPTNO=DEPT. DEPTNO;
eller
ANSI-syntaks
VÆLG EMP.EMPNO,EMP.ENAME, DEPT.DEPTNO,DEPT.DNAME
FRA EMP INNER JOIN DEPT
på EMP. DEPTNO=DEPT. DEPTNO;
eller
VÆLG EMP.EMPNO,EMP.ENAME, DEPT.DEPTNO,DEPT.DNAME
FRA EMP INNER JOIN DEPT
ved hjælp af (DEPTNO);
Eksempel på indre sammenkædning af flere tabeller
VÆLG EMP.EMPNO,EMP.ENAME, DEPT.DEPTNO,DEPT.DNAME,REGION.REGION_NAME
FRA EMP , DEPT,REGION
hvor EMP. DEPTNO=DEPT. DEPTNO
og DEPT.REGION_ID=REGION.REGION_NAME;
eller
VÆLG EMP.EMPNO,EMP.ENAME, DEPT.DEPTNO,DEPT.DNAME,REGION.REGION_NAME
FRA EMP
intern join DEPT på EMP. DEPTNO=DEPT. DEPTNO
intern join REGION på DEPT.REGION_ID=REGION.REGION_NAME;
eller
VÆLG EMP.EMPNO,EMP.ENAME, DEPT.DEPTNO,DEPT.DNAME,REGION.REGION_NAME
FRA EMP indre deltagelse DEPT ved hjælp af (DEPTNO)
indre deltagelse REGION ved hjælp af (REGION_ID);
Cross Join-syntaks og eksempel
VÆLG EMPNO,ENAME, DEPT.DEPTNO,DNAME FRA EMP , DEPT;
eller
SELECT EMPNO,ENAME, DEPT.DEPTNO,DNAME FROM EMP krydsforbindelse DEPT;
Left Outer Join-syntaks og eksempel
vælg empno,ename,emp.deptno,dname
fra emp
LEFT OUTER JOIN dept
på emp.deptno=dept.deptno;
- tegnsyntaks
vælg empno,ename,emp.deptno,dname
fra emp ,dept hvor emp.deptno=dept.deptno(+);
- er på den side, hvor NULL forventes, og den er på højre side
Right Outer Join-syntaks og eksempler
vælg empno,ename,dept.deptno,dname
fra emp
højre OUTER JOIN dept
på emp.deptno=dept.deptno;
- tegnsyntaks
vælg empno,ename,dept.deptno,dname
fra emp ,dept hvor emp.deptno(+)=dept.deptno;
- er på den side, hvor NULL forventes, og den er på venstre side
Fuld Outer Join-syntaks og eksempler
select empno,ename,dept.deptno,dname
from emp
full OUTER JOIN dept
on emp.deptno=dept.deptno;
Relaterede artikler
Oracle Joins
Nested Loop Join i Oracle
Forskellige Joins-metoder i Oracle
Hash-join i Oracle