반응형
쿼리를 짤 때 join 이 필요할 경우에는 항상 on 을 사용했는데, 최근에 using 문법을 알게 되었다.
using 문법은 어떨 때 사용하는 것이 적절할까?
아래와 같이 테이블 2개가 있다고 가정해보자.
두 테이블을 INNER JOIN 해서 각 테이블의 정보를 조회하는 쿼리와 결과는 다음과 같다.
-- on 사용
SELECT u.*, o.*
FROM tb_user u
INNER JOIN tb_office o
ON u.user_no = o.user_no;
-- using 사용
SELECT u.*, o.*
FROM tb_user u
INNER JOIN tb_office o
USING (user_no);
ON 절에서 각 테이블의 키를 연결하여 조회할 수도 있고,
USING 뒤에 두 테이블을 연결하는 키를 명시하여 조회할 수도 있다.
여기에서 확인할 수 있듯이, USING도 JOIN 할 때 사용되는 문법임을 확인할 수 있다.
단, USING 을 사용할 경우에는 연결하려는 테이블 간의 키에 해당하는 컬럼명이 일치해야 한다는 것이다.
또한 OUTER JOIN 시에 주의해야할 점도 있다.
반응형
바로 ON 뒤에 추가적으로 조건을 붙일 경우이다. USING 은 뒤에 추가적으로 AND 조건을 붙일 수 없다.
두 테이블을 LEFT JOIN 해서 각 테이블의 정보를 조회하는 쿼리와 결과는 다음과 같다.
-- ON 사용
SELECT u.*, o.*
FROM tb_user u
LEFT JOIN tb_office o
ON u.user_no = o.user_no AND o.dept = '웹팀';
-- USING 사용
SELECT u.*, o.*
FROM tb_user u
LEFT JOIN tb_office o
USING (user_no)
WHERE o.dept = '웹팀';
조건에 따라 조회 결과가 달라지는 것을 확인할 수 있다. 따라서 USING 은 INNER JOIN 경우에 권장된다.
반응형
'DataBase > Mysql' 카테고리의 다른 글
[ mysql ] with recursive 문법 (+ 프로그래머스 특정 세대의 대장균 찾기) (0) | 2024.04.09 |
---|---|
[ mysql ] 예시로 보는 인덱스 (Index) 개념 완전 이해하기 (0) | 2023.01.05 |
[ mysql ] 기본키(Primary Key) 와 유니크키(Unique Key) 차이 (0) | 2022.01.25 |
[ mysql ] select insert 문법 + duplicate key 기본키 중복 해결 (1) | 2021.12.08 |
[ mysql ] merge update insert (0) | 2020.06.16 |