여러개의 테이블을 결합시켜 원하는 데이터를 가져오는 것
SELECT 컬럼명1,컬럼명2,... FROM 테이블명1,테이블명2 WHERE 조인조건;
두 개 이상의 테이블 결합에서 일치하는 행만 반환한다.
두 개 이상의 테이블 결합에서 일치하지 않는 행도 포함하여 반환한다.
- LEFT JOIN
왼쪽 테이블의 모든 행과 오른쪽 테이블의 일치하는 행을 반환한다.- FULL JOIN
두 테이블의 모든 행을 반환한다.- RIGHT JOIN
오른쪽 테이블의 모든 행과 왼쪽 테이블의 일치하는 행을 반환한다.
WHERE절에 공통컬럼들이 동등연산자 (=)에 의해 결합되는 조인
SELECT S.SNUM,S.SNAME,G.SUBJECT,G.SCORE
FROM STUDENT S,GRADE G
WHERE S.SNUM=G.SNUM;
USING
-> 몇 몇개의 컬럼을 지정하여 EQUI JOIN을 하고싶을 때 사용
SELECT *
FROM TABLE1
JOIN TABLE2
USING(EMP_ID)
- 공통컬럼이 존재하지 않아도 결합되는 경우의 조인
- 비교연산자에 의해 결합 가능
- 3개이상의 테이블 조인시 AND로 묶어서 결합 가능
- 결합조건이 없는 경우의 조인 (실질적으로 거의 사용 X )
- 참조해야 하는 컬럼이 자신의 테이블의 다른 컬럼인 경우 사용되는 조인
이 경우, 똑같은 테이블을 E1,E2로 나눠서 참조한다.
SELECT E1.EMPNO,E1.ENAME,E1.MGR,E2.ENAME
FROM EMP E1,EMP E2
WHERE E1.MGR=E2.EMPNO;
EMPNO ENAME MGR ENAME
7902 FORD 7566 JONES
7900 JAMES 7698 BLAKE
7844 TURNER 7698 BLAKE
7521 WARD 7698 BLAKE
7654 MARTIN 7698 BLAKE
7499 ALLEN 7698 BLAKE
7934 MILLER 7782 CLARK
7782 CLARK 7839 KING
7566 JONES 7839 KING
7698 BLAKE 7839 KING
7369 SMITH 7902 FORD
A테이블과 B테이블에서 같은 이름을 가진 컬럼들이 모두 동일한 데이터를 가지고 있을 경우(데이터 내용이 완전히 동일한 것만 조인됨.) JOIN되는 방식
select tabe1.column, table2column from table1 NATURAL JOIN table2;