조인 형식
테이블을 조인할 때 결과 집합에 나타나는 행은 만드는 조인 형식에 따라 다릅니다.아래와 같은 조인 형식을 만들 수 있습니다.
내부 조인 조인된 두 테이블에서 일치하는 행만 표시하는 조인입니다.이는 쿼리 및 뷰 디자이너에 설정된 기본 조인 형식입니다. 예를 들어, titles 테이블과 publishers 테이블을 조인하여 각 제목에 출판사 이름을 보여주는 결과 집합을 만들 수 있습니다.내부 조인에서 출판사 정보가 없는 제목은 결과 집합에 포함되지 않으며 제목이 없는 출판사 이름도 포함되지 않습니다.이와 같은 조인의 결과 SQL은 다음과 같습니다.
SELECT title, pub_name FROM titles INNER JOIN publishers ON titles.pub_id = publishers.pub_id
[!참고]
NULL을 포함하는 열은 내부 조인을 만들 때 어떤 값과도 일치하지 않으므로 결과 집합에서 제외됩니다.Null 값은 다른 Null 값과 일치하지 않습니다.
외부 조인 조인된 테이블에 관련 행이 없는 경우에도 행을 포함하는 조인입니다.다음과 같은 세 가지 변형 외부 조인을 만들어 포함할 불일치 행을 지정할 수 있습니다.
왼쪽 우선 외부 조인 처음에 명명한 테이블("왼쪽" 테이블이며 JOIN 절의 맨 왼쪽에 나타남)의 모든 행이 포함됩니다.오른쪽 테이블에 있는 불일치 행은 나타나지 않습니다.다음 SQL 문은 출판사 정보가 없는 제목까지 모두 포함하는 titles 테이블과 publishers 테이블 간의 왼쪽 우선 외부 조인을 보여 줍니다.
SELECT titles.title_id, titles.title, publishers.pub_name FROM titles LEFT OUTER JOIN publishers ON titles.pub_id = publishers.pub_id
오른쪽 우선 외부 조인 두 번째로 명명한 테이블("오른쪽" 테이블이며 JOIN 절의 맨 오른쪽에 나타남)의 모든 행이 포함됩니다.왼쪽 테이블에 있는 불일치 행은 포함되지 않습니다.예를 들어, titles 테이블과 publishers 테이블 간의 오른쪽 우선 외부 조인은 titles 테이블에 제목이 없는 출판사까지 모든 출판사를 포함합니다.결과 SQL은 다음과 같습니다.
SELECT titles.title_id, titles.title, publishers.pub_name FROM titles RIGHT OUTER JOIN publishers ON titles.pub_id = publishers.pub_id
완전 외부 조인 일치 여부에 관계 없이 조인된 테이블의 모든 행이 포함됩니다.예를 들어, titles 테이블과 publishers 테이블 간의 완전 외부 조인은 다른 테이블에 일치하는 값이 없는 경우에도 모든 제목과 모든 출판사를 표시합니다.
SELECT titles.title_id, titles.title, publishers.pub_name FROM titles FULL OUTER JOIN publishers ON titles.pub_id = publishers.pub_id
[!참고]
Oracle 같은 일부 데이터베이스에서는 완전 외부 조인을 지원하지 않습니다.
크로스 조인 결과 집합에 두 테이블의 행을 하나씩 포함하는 조인입니다.예를 들어, authors CROSS JOIN publishers를 사용하여 가능한 저자/출판사 조합에 대해 각각 행을 하나씩 갖는 결과 집합을 만들 수 있습니다.결과 SQL은 다음과 같습니다.
SELECT * FROM authors CROSS JOIN publishers