본문 바로가기

데이터베이스

ON vs USING vs WHERE

SQL에서 JOIN을 사용할 때 조건을 지정하는 방법으로 ON, USING, WHERE 세 가지가 있다.

1. 조건절의 실행 순서

1) ON/USING (JOIN 조건)
2) WHERE (필터링 조건)

 

 

2. ON 조건절

- 테이블 별칭(alias) 사용 가능
- 다양한 비교 연산자 사용 가능 (=, >, LIKE 등)
- 복잡한 JOIN 조건을 작성할 수 있음

ex)
- 기본적인 ON 사용
SELECT t.team_name, s.stadium_name
FROM team t 
JOIN stadium s ON (t.stadium_id = s.stadium_id);

- 복합 조건 사용
SELECT e.employee_name, d.department_name
FROM employee e 
JOIN department d 
    ON (e.department_id = d.department_id 
    AND e.location_id = d.location_id);

 

3. USING 조건절

- 공통 칼럼명만 괄호 안에 작성
- 테이블 별칭을 사용하지 않음
- 등호(=) 외의 다른 연산자 사용 불가

ex)
- 올바른 USING 사용
SELECT team_name, stadium_name
FROM team JOIN stadium USING(stadium_id);

- 다중 칼럼 USING
SELECT *
FROM employee 
JOIN department USING(department_id, location_id);

 

 

4. WHERE 조건절

- JOIN 완료 후 적용됨
- 결합된 테이블의 모든 칼럼 참조 가능
- 일반적인 필터링 조건 사용

ex)
SELECT t.team_name, s.stadium_name
FROM team t 
JOIN stadium s ON (t.stadium_id = s.stadium_id)
WHERE s.capacity > 50000
  AND t.city = 'New York';

'데이터베이스' 카테고리의 다른 글

[DML] insert  (0) 2024.11.13
index  (0) 2024.11.07
[DML] select  (0) 2024.11.02
[DDL] drop  (0) 2024.11.02
함수종속성  (0) 2024.10.23