LEFT JOIN과 (+) 표기 방식은 **외부 조인(OUTER JOIN)**을 표현하는 두 가지 방법으로, SQL 표준 방식과 특정 DBMS의 고유 방식의 차이를 보여줍니다.
SELECT A.ID, A.Name, B.Order FROM A LEFT JOIN B ON A.ID = B.ID;
설명:
SELECT A.ID, A.Name, B.Order FROM A, B WHERE A.ID = B.ID(+);
설명:
| 특징 | LEFT JOIN | (+) 표기 방식 |
| 표준 여부 | ANSI SQL 표준 | 비 ANSI SQL (오라클 고유) |
| 가독성 | 직관적이고 읽기 쉬움 | 상대적으로 덜 직관적 |
| 작성 위치 | ON 절에서 조인 조건 작성 | WHERE 절에서 (+) 사용 |
| 호환성 | 모든 DBMS에서 지원 | 오라클에서만 지원 |
| 사용 권장 여부 | 권장 (SQL 표준 준수) | 비권장 (표준 준수 어려움) |
테이블 A
| ID | Name |
| 1 | Alice |
| 2 | Bob |
| 3 | Charlie |
테이블 B
| ID | Order |
| 1 | A123 |
| 2 | B456 |
SELECT A.ID, A.Name, B.Order FROM A LEFT JOIN B ON A.ID = B.ID;
SELECT A.ID, A.Name, B.Order FROM A, B WHERE A.ID = B.ID(+);
결과:
| ID | Name | Order |
| 1 | Alice | A123 |
| 2 | Bob | B456 |
| 3 | Charlie | NULL |
| 쿼리 sum(if 함수로 count 건수 구하는 방법? (0) | 2025.01.28 |
|---|---|
| db safer 접속ip 변경하는 방법 (0) | 2025.01.21 |
| 데이터 타입 int, bigint 차이 (0) | 2025.01.08 |
| 기존 데이터 백업 insert 쿼리 만드는 방법 (1) | 2024.12.07 |
| 데이터 삭제 delete와 truncate 차이는? (0) | 2024.12.07 |