Implicit vs Explicit
NATURAL JOIN과 USING
둘 다 같은 이름의 컬럼을 활용하지만, NATURAL JOIN은 조인 조건이 스키마 변화에 따라 몰래 바뀔 수 있습니다.
NATURAL 위험
USING 명시
ON 완전 명시
NATURAL JOIN
같은 이름 컬럼 자동 매칭
user_id뿐 아니라 나중에 status 같은 같은 이름 컬럼이 추가되면 조건이 늘어납니다.
USING(user_id)
조인 컬럼을 명시
ON보다 짧게 쓰되 어떤 컬럼으로 조인하는지 코드에 남습니다.
문법
조건 결정
결과 컬럼
NATURAL
DB가 같은 이름을 자동 선택
조인 컬럼 1번 표시
USING
개발자가 컬럼 지정
조인 컬럼 1번 표시
ON
조건을 완전히 명시
양쪽 컬럼 모두 선택 가능