프로젝트 때 USING을 사용해본 적이 없어서 정리해보는
USING과 ON의 차이점
1) ON
A 과목 수강 테이블
ID NAME
1 김벨롭
2 김조인
B 과목 수강 테이블
ID NAME
1 김벨롭
3 김쿼리
-> A과목`만` 수강하는 학생 구할 시 차집합
SELECT A.ID, A.NAME FROM ATABLE A
LEFT JOIN BTABLE B ON A.ID = B.ID
WHERE B.ID IS NULL
(where절이 없으면 B테이블 일치 코드 없을시 null값 b.id 반환)
ON은 두 테이블간 조인해줘야 하는 필드의 이름이
같을 때 & 다를 때
둘 다 사용할 수 있다.
2) USING
SELECT A.ID, A.NAME
FROM ATABLE A
LEFT JOIN BTABLE B USING(ID)
WHERE B.ID IS NULL;
USING은 두 테이블간 필드 이름이 같은 경우
에만 사용된다.
🤨 차이점?
USING 사용 시, 필드 이름을 한 번만 가져오는 반면
ON은 각각의 빌드를 가져오기 때문에 중복이 생겨
필드 이름이 같은 경우에는 USING을 사용하면 데이터 양을 줄일 수 있다.