핵심 차이

두 방식의 결과는 같아도, JOIN 조건을 어디에 두는지가 실수를 갈라놓습니다.

명시적 JOIN은 연결 규칙을 ON에 바로 드러내고, 암시적 JOIN은 WHERE까지 읽어야 관계가 보입니다.

왜 권장될까

조인 조건결과 필터가 분리되어 읽기 쉽고, 조건 누락을 더 빨리 발견할 수 있습니다.

명시적 JOIN

권장
FROM users u
JOIN orders o
  ON u.user_id = o.user_id
읽는 순간 보이는 것

어떤 키로 연결하는지가 JOIN 문장 안에 바로 드러납니다.

의미 분리

ON은 결합 규칙, WHERE는 필터라는 역할 구분이 선명합니다.

암시적 JOIN

전통 방식
FROM users u, orders o
WHERE u.user_id = o.user_id
읽을 때의 부담

쉼표는 단순 나열처럼 보여서 WHERE까지 내려가야 연결 의미를 이해할 수 있습니다.

실수 지점

WHERE를 빼먹으면 연결 규칙이 사라져 모든 행 조합이 만들어집니다.

같은 결과

u.user_id = o.user_id 조건이 있으면 두 방식 모두 일치하는 행만 반환합니다.

WHERE 누락 시

카테시안 곱이 되어 users × orders 전체 조합이 생깁니다.

예: users 3행 × orders 4행 = 결과 12행