RDBS/MYSQL

[MYSQL]USING과 ON의 차이

MoonSta 2023. 1. 5. 14:13

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(차집합)

 

[MYSQL]MINUS(차집합)

💥MINUS(차집합) Oracle에서는 집합연산자 MINUS를 사용하여 두 집합 간의 차집합을 구할 수 있다. MySQL에는 MINUS와 같은 집합 연산자가 없기 때문에 서브쿼리를 사용하여 차집합을 구할 수 있다. 우

mooonstar.tistory.com

즉, 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(필드명)을 사용하여 조인 조건을 작성할 수 있는데 이렇게 사용한다면 조인 시 양쪽의 테이블의 키를 모두 조회할 필요가 없어서 성능이 좋아집니다.