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;
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 조건절을 사용하여 데이터의 양을 줄이자!