ANSI JOIN

-- 오라클 조인
SELECT E.EMPNO, E.ENAME, E.DEPTNO, D.DNAME
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO;


-- ANSI 조인
SELECT E.EMPNO, E.ENAME, E.DEPTNO, D.DNAME
FROM EMP E JOIN DEPT D      --콤마를 JOIN으로
ON E.DEPTNO = D.DEPTNO;     --WHERE를 ON으로( WHERE가 있으나 조인할때는 ON을 쓴다)

 

ANSI JOIN에서도 WHERE 사용 가능

-- ANSI 조인

SELECT E.EMPNO, E.ENAME, E.DEPTNO, D.DNAME
FROM EMP E JOIN DEPT D
ON E.DEPTNO = D.DEPTNO AND D.DEPTNO = 10;  --AND 사용가능


SELECT E.EMPNO, E.ENAME, E.DEPTNO, D.DNAME
FROM EMP E JOIN DEPT D
ON E.DEPTNO = D.DEPTNO
WHERE D.DEPTNO = 10;   --ANSI 조인에도 ON 아래에 WHERE를 쓸 수 있다

 

 

오라클과 ANSI의 OUTER JOIN

-- 오라클 조인
SELECT *
FROM BOARD B, REPLY R
WHERE B.ID = R.BOARDID;

-- ANSI 조인
SELECT *
FROM BOARD B LEFT OUTER JOIN REPLY R
ON B.ID = R.BOARDID;

 

 

FULL OUTER JOIN

FULL OUTER JOIN은 오라클에서는 되지 않고 ANSI 를 써야한다

--오라클 조인
SELECT *
FROM BOARD B, REPLY R
WHERE B.ID(+) = R.BOARDID(+);

 

--ANSI 조인
SELECT *
FROM BOARD B FULL OUTER JOIN REPLY R
ON B.ID = R.BOARDID;

.

+ Recent posts