본문 바로가기
DB

[SQL] JOIN, using 조건절과 on 조건절의 차이점

by 코딩로그 2022. 9. 13.

on 조건절

형식은 다음과 같다. ON 조건절은 컬럼 이름이 다르더라도 JOIN 조건을 사용할 수 있다. (컬럼 이름이 같은 경우도 가능함)

SELECT COL1, COL2, ..., COLN
FROM TABLE_A INNER JOIN TABLE_B
ON TABLE_A.COLUMN = TABLE_B.COLUMN;

 

 

아래와 같은 경우 department_id를 테이블에서 각각 가져와 출력하게 된다. 따라서, 아래와 같은 경우 2개의 department_id 컬럼이 출력된다.

select *
from employees inner join departments 
on employees.department_id = departments.department_id
where employee_id=100;

 

on 절 사용한 경우

 

 

USING 조건절

형식은 다음과 같다. USING 조건절은 이름이 같은 컬럼들 중에서 하나의 컬럼에 대해서 가져와 join이 이루어진다.

SELECT COL1 COL2, ..., COLN
FROM TABLE_A JOIN TABLE_B
USING(공통 COLUMN);

 

 

 

아래를 예시로 ON 조건절과는 다르게 1개의 department_id 컬럼이 출력된다.

또한, USING절에서는 table 이름이나 alias를 명시하면 error가 발생한다.

select *
from employees inner join departments 
using (department_id)
where employee_id=100;

 

USING 절 사용한 결과

 

 


따라서, 이름이 중복되는 컬럼에 대해서는 USING 조건절을 사용하여 데이터의 양을 줄이자!