상황: 주문번호·회원 ID·회원 닉네임을 JOIN으로 조회한다.
BAD SQL
SELECT o.ord_no
,mbr_id
,m.nick_nm
FROM tr_ord_big o
JOIN ms_mbr_big m
ON m.mbr_id = o.mbr_id
WHERE mbr_id = 'M00019';
SQL
복사
•
JOIN에 참여하는 두 테이블에 mbr_id가 있는데 컬럼 앞에 별칭이 없어 어느 테이블의 컬럼인지 불명확하다.
•
이 SQL은 해당 컬럼 참조가 모호하여 PostgreSQL에서 ambiguous column 오류가 발생할 수 있다. 원문에는 실측 실행계획이 없다.
GOOD SQL
/* SQL_ID: ORD-MBR-001 */
SELECT o.ord_no
,o.mbr_id
,m.nick_nm
FROM tr_ord_big o
JOIN ms_mbr_big m
ON m.mbr_id = o.mbr_id
WHERE o.mbr_id = 'M00019';
SQL
복사
•
o.mbr_id, m.nick_nm처럼 컬럼마다 테이블 별칭을 명시하면 소속이 분명해진다.
•
SQL_ID 주석은 SQL 식별·추적을 돕는 프로젝트 작성 규칙의 예시다.
핵심
•
JOIN SQL에서는 컬럼마다 테이블 별칭을 붙여 명확하게 작성하자.
•
SQL ID 등 식별자 표기 규칙도 프로젝트 내에서 일관되게 적용하자.
참고
•
원문은 테이블 별칭에 AS를 쓰지 않는 작성 규칙을 권장한다(Oracle·MySQL·PostgreSQL에서 공통으로 사용할 수 있는 문법).
•
별칭이나 SQL ID 주석 자체가 실행 성능을 높여 주는 것은 아니다. 실제 JOIN 방식은 실행계획에 따라 달라진다.
•
ORD-MBR-001은 예시이며 식별자 형식은 프로젝트 규칙에 맞춘다. 이 항목의 BAD/GOOD 실측 실행계획은 원문에 제공되지 않았다.


