Oracle 9i 이전부터 사용되던 방식으로, FROM 절에 테이블을 나열하고 WHERE 절에서 조인 조건을 처리하는 것이 특징입니다.
-
특징: 쉼표(
,)로 테이블을 구분합니다. -
장점: 쿼리가 간결해 보일 수 있고, 오래된 Oracle 레거시 프로젝트에서 자주 마주칩니다.
-
단점: 조인 조건과 일반 검색 조건이
WHERE절에 한데 섞여 있어, 테이블이 많아질수록 쿼리 해석이 어렵습니다.
-- [Oracle Join 예시]
SELECT e.ename, d.dname
FROM emp e, dept d
WHERE e.deptno = d.deptno -- 조인 조건
AND e.sal > 2000; -- 검색 조건
2. ANSI Join(표준방식)
2. ANSI Join(표준방식)
미국 국립 표준 협회(ANSI)에서 제정한 표준 SQL 문법입니다. Oracle 뿐만 아니라 MySQL, PostgreSQL 등 대부분의 DBMS에서 공통으로 사용됩니다.
-
특징:
JOIN키워드와ON절을 사용합니다. -
장점: 조인 조건(
ON)과 일반 조건(WHERE)이 명확히 분리되어 가독성이 매우 뛰어납니다. -
단점: Oracle 방식보다 쿼리가 다소 길어질 수 있습니다.
-- [ANSI Join 예시]
SELECT e.ename, d.dname
FROM emp e
JOIN dept d ON e.deptno = d.deptno -- 조인 조건 분리
WHERE e.sal > 2000; -- 검색 조건 분리
3. Outer Join 의 결정적 차이
가장 큰 차이는 역시 외부 조인(Outer Join) 표현식입니다.
Oracle의
| 구분 | Oracle Join | ANSI Join |
| 조인 키워드 | 없음 (쉼표로 구분) | INNER JOIN, LEFT OUTER JOIN 등 |
| 조건 명시 | WHERE 절에 모두 포함 |
ON (조인), WHERE (필터) 분리 |
| Outer Join | (+) 기호 사용 |
LEFT/RIGHT/FULL OUTER JOIN |
| 범용성 | Oracle 전용 | 모든 DBMS 공통 (표준) |
가장 큰 차이는 역시 외부 조인(Outer Join) 표현식입니다.
Oracle의 (+) 방식
데이터가 없는 쪽에 (+) 기호를 붙여줍니다.
ANSI의 방향 명시 방식
직관적으로 어느 쪽 테이블을 기준으로 할지 명시합니다.

