조인 오류는 문법보다 ON 누락, 모호한 컬럼, 1:N 관계의
행 증가에서 많이 생깁니다.
u.user_id = o.user_id
WHERE에서 필터로 자주 사용
암시적 JOIN이나 잘못된 리팩터링에서 가장 위험하다.
FROM users u, orders o
INNER JOIN에서는 같아 보여도 OUTER JOIN에서 의미가 갈라진다.
ON u.user_id = o.user_id WHERE o.status = 'PAID'
양쪽에 같은 이름이 있으면 별칭으로 어느 테이블인지 밝힌다.
SELECT u.user_id, o.order_id
회원 1명에 주문 3건이면 결과에서도 회원 정보가 3번 보인다.
users 1 row orders 3 rows result 3 rows
중복 컬럼, 전송량 증가, API 응답 형태 충돌을 만들기 쉽다.
SELECT u.username, o.status
대량 테이블에서는 조인 키 인덱스와 읽은 행 수를 확인한다.
EXPLAIN SELECT ... JOIN ...