일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Notice
Tags
- ROWNUM
- 30일챌린지
- SQL
- where절
- 데이터모델링
- 인덱스
- Drop
- ERD
- 빅데이터
- 30일글쓰기
- constraint
- 넷플릭스
- 전생
- 도전
- 환생
- SQLD
- Update
- data
- 직장인일기
- null
- rename
- 일기
- 직장생활
- 회사생활
- 회사싫어
- 책리뷰
- INSERT
- 홈트
- 테이블삭제
- 보울룸
Archives
- Today
- Total
최보름달
[SQL] USING, ON 조건절 본문
USING 조건절
FROM절의 USING 조건절을 이용하면 같은 이름을 가진 컬럼들 중에서 원하는 컬럼에 대해서만 EQUI JOIN을 할 수 있다.
sql server에서는 지원하지 않는다.
SELECT *
FROM DEPT JOIN DEPT_TEMP
USING (DEPTNO) ;
USING 조건절에서도 테이블 이름이나 ALIAS, 접두사를 붙일 수 없다.
ON 조건절
컬럼명이 다르더라도 JOIN 조건을 사용할 수 있다.
SELECT E.EMPNO, E.ENAME, E.DEPTNO, D.DNAME
FROM EMP E JOIN DEPT D
ON (E.DEPTNO = D.DEPTNO) ; -- 괄호는 없어도 됨. (옵셔널)
WHERE 절과 혼용해서 사용할 수도 있다.
SELECT E.EMPNO, E.ENAME, E.DEPTNO, D.DNAME
FROM EMP E JOIN DEPT D
ON (E.DEPTNO = D.DEPTNO)
WHERE E.DEPTNO = 30 ;
ON 조건절에 검색 조건을 사용할 수 있지만 (WHERE 기능과 같음), WHERE를 쓰는 것을 권장한다.
SELECT E.EMPNO, E.ENAME, E.DEPTNO, D.DNAME
FROM EMP E JOIN DEPT D
ON (E.DEPTNO = D.DEPTNO
AND E.MGR = 7777) ;
-- 이것과 같은 결과다.
SELECT E.EMPNO, E.ENAME, E.DEPTNO, D.DNAME
FROM EMP E JOIN DEPT D
ON (E.DEPTNO = D.DEPTNO)
WHERE E.MGR = 7777 ;
kdata 한국데이터진흥원에서 출간한 SQL 전문가 가이드 2013 Edition을 요약했습니다.
'문송한 회사생활 > SQL 공부' 카테고리의 다른 글
[SQL] OUTER JOIN (LEFT, RIGHT, FULL) (0) | 2020.08.15 |
---|---|
[SQL] CROSS JOIN (0) | 2020.08.15 |
[SQL] INNER JOIN, NATURAL JOIN (0) | 2020.08.15 |
[SQL] FROM절의 JOIN (0) | 2020.08.15 |
[SQL] STANDARD SQL, 집합 연산자 (0) | 2020.08.15 |