USING과 ON의 차이
USING과 ON은 두 테이블이 JOIN을 할 때 JOIN 조건 앞에 사용되는 구문이다. 하지만 두 개의 구문의 차이점이 있다. 예시를 보며 파악해보도록 하겠습니다.
A 과목 수강 테이블
ID | NAME |
101 | 문OO |
102 | 차OO |
103 | 채OO |
B 과목 수강 테이블
ID | NAME |
101 | 문OO |
102 | 차OO |
두 개의 테이블에서 A 과목은 수강하였지만, B 과목을 수강하지 않은 인원을 조회해보도록 하겠습니다.
2023.01.05 - [MYSQL] - [MYSQL]MINUS(차집합)
즉, A 과목을 수강하지만 B 과목을 수강하지 않은 학생은 A-B 차집합으로 구할 수 있습니다. 쿼리는 다음과 같습니다.
SELECT A.ID
A.NAME
FROM ATABLE A
LEFT JOIN TABLE B ON A.ID = B.ID
WHERE B.ID IS NULL;
A과목만 수강하는 학생
ID | NAME |
103 | 채OO |
USING 구문
하지만, 위의 두 개의 테이블과 같이 A, B 테이블에 필드 이름이 같은 경우에 USING 구문을 사용할 수 있다.
SELECT A.ID
A.NAME
FROM ATABLE A
LEFT JOIN TABLE B USING(ID)
WHERE B.ID IS NULL;
A과목만 수강하는 학생
ID | NAME |
103 | 채OO |
USING구문의 사용 조건
USING 구문의 경우에는 두 개의 테이블의 필드가 같아야 한다. 필드의 값이 같으면 USING(필드명)을 사용하여 조인 조건을 작성할 수 있는데 이렇게 사용한다면 조인 시 양쪽의 테이블의 키를 모두 조회할 필요가 없어서 성능이 좋아집니다.
'RDBS > MYSQL' 카테고리의 다른 글
[MYSQL]INSERT - 여러 건 삽입 (12) | 2023.01.09 |
---|---|
[프로그래머스]입양 시각 구하기(1)-MySQL (9) | 2023.01.07 |
[MYSQL]윈도우함수(Window Function) (5) | 2023.01.03 |
[MYSQL]INDEX란? (2) | 2023.01.02 |
[MYSQL]ROWNUM 이용한 데이터 번호 매기기 (1) | 2022.12.14 |