ANSI
- JOIN의 형식이 FROM 절에서 지정된다.
- JOIN 조건이 WHERE절이 아닌 ON에 입력된다.
- NATURAL JOIN 과 USING절에서는 공통 컬럼명에 ALIAS 사용을 못함.
CROSS JOIN
SELECT ENAME, DNAME, E.DEPTNO
FROM EMP CROSS JOIN DEPT D;
CROSS JOIN 은 오라클 조인 CARTESIAN과 같다.
NATURAL JOIN
NATURAL 조인은 EQUI-JOIN과 동일하게 1개의 공통 컬럼명만 추출한다.
SELECT EMP EMPNO, ENAME, DNAME, LOC FROM EMP NATURAL JOIN DEPT;
USING
동일 이름의 컬럼이 여러 개인 경우 조인 컬럼을 지정.
단, 공통 컬럼명에 TABLE ALIAS 명을 사용할 수 없다.
SELECT EMPNO, ENAME, DNAME, LOC FROM EMP INNER JOIN DEPT
USING(DEPTNO); *INNER은 생략가능
JOIN ~ ON
NON-EQUI 조인 또는 임의의 조건으로 조인 시 사용.
복잡한 조건의 조인 가능하다.
(서브쿼리, AND/OR 연산자, EXSIT, IN 연산자)
ON 조건 절에 JOIN 조건 외에도 데이터 검색조건을 추가할 수 있지만,
검색 조건이 목적인 경우에는 WHERE절을 사용하는 게 낫다.
EX)
SELECT EMPNO
FROM EMP
JOIN DEPT
ON EMP.DEPTNO = DEPT.DEPTNO
AND DEPT.DEPTNO = 10;
EX)
SELECT EMPNO
FROM EMP
JOIN DEPT
ON EMP.DEPTNO = DEPT.DEPTNO
WHERE DEPT.DEPTNO = 10;
'DataBase > DQL' 카테고리의 다른 글
7/1 SQL SUBQUERY 2 (0) | 2021.07.01 |
---|---|
6/30 SQL 서브쿼리 (0) | 2021.06.30 |
6/29 SQL 조인 (0) | 2021.06.30 |
6/29 SQL 그룹함수 보충 (0) | 2021.06.29 |
6/28 SQL 그룹함수 (0) | 2021.06.28 |