두 개 이상의 다른 테이블을 한 번에 보여줄때 쓰는 쿼리
EQUI JOIN
과NOT EQUI JOIN
를 하나의 쿼리에서 사용 할 수 있다.- 테이블간 PK와 FK의 연관 관계가 없어도 JOIN이 가능
JOIN
되는 테이블 간 모두 존재하는 컬럼이 존재 하는 경우, 반드시 테이블명이나 AS를 명시해야 한다.
Equal=
조건으로 JOIN
하는 것
WHERE
절 내부에 =
조건 추가SELECT A.CODE, A.NAME, B.ID, B.REVIEW, B.DATE
FROM PRODUCT A, PRODUCT_REVIEW B
WHERE A.CODE = B.CODE
AND A.CODE = '~~~' ;
BETWEEN
>
<
>=
<=
조건을 이용하여 JOIN
하는 것
JOIN
조건에 충족하는 데이터만 출력되는 방식 교집합
ON
절에 정의된 조건으로 JOIN의 여부를 결정한다.SELECT A.CODE, A.NAME, B.ID,B.CONTENT
FROM PRODUCT A INNER JOIN REVIEW B
ON A.CODE = B.CODE ;
JOIN
조건을 만족하지 않은 행들도 출력하는 형태
기준이 되는 행은 항상 무조건 모두 출력된다!!!!
ON
절에 정의된 조건으로 JOIN의 여부를 결정한다.(+)
기호를 붙여 작성한다.> LEFT JOIN의 경우
SELECT A.COL1 , B.COL2
FROM SAMPLE1 A, SAMPLE2 B
WHERE A.COL1 = B.COL2(+);
우변에 (+)를 붙인다
> RIGHT JOIN의 경우
SELECT A.COL1, B.COL2
FROM SAMPLE1 A, SAMPLE2 B
WHERE A.COL1(+) = B.COL2;
좌변에 (+)를 붙인다
왼쪽에 표기된 테이블 데이터는 무조건 출력되는 조인
LEFT OUTER JOIN
JOIN
된 데이터가 없는 오른쪽 테이블은NULL
출력
오른쪽에 표기된 테이블 데이터는 무조건 출력되는 조인
RIGHT OUTER JOIN
JOIN
된 데이터가 없는 왼쪽 테이블은NULL
출력
왼쪽, 오른쪽 데이터가 모두 출력되는 방식
FULL OUTER JOIN
중복값은 제거 후 출력
JOIN
되어 출력
- Oracle에서,
USING
절을 이용하여 같은 이름을 가진 컬럼 중, 원하는 컬럼만 조인 가능
- 단,
SELECT
절에서 ALIAS 표기 불가ON
절 사용 불가!!
경우의 수 생각하기
JOIN
조건이 없을 경우, 카디션 곱으로 취급SELECT A_NAME, B_NAME
FROM B,A ;
SELECT A_NAME, B_NAME
FROM B CROSS JOIN A ;
// 같은 결과