조인(join) : 하나의 테이블이 아닌, 두 개 이상의 테이블을 묶어서 하나의 결과물을 만드는 것
왼쪽 테이블과 오른쪽 테이블의 두 행이 모두 일치하는 행이 있는 부분만 표기한다.
SELECT * FROM TableA A
INNER JOIN TableB B ON A.key = B.key
두 테이블 간의 교집합을 나타낸다.
왼쪽 테이블의 모든 행이 결과 테이블에 표기된다.
SELECT * FROM TableA A
LEFT JOIN TableB B ON
A.key = B.key
오른쪽 테이블에 일치하는 항목이 없으면 해당 값은 null 값이 된다.
오른쪽 테이블의 모든 행이 결과 테이블에 표기된다.
SELECT * FROM TableA A
RIGHT JOIN TableB B ON
A.key = B.key
왼쪽 테이블에 일치하는 항목이 없으면 해당 값은 null 값이 된다.
두 개의 테이블을 기반으로 조인 조건에 만족하지 않는 행까지 모두 표기한다.
SELECT * FROM TableA A
FULL OUTER JOIN TableB B ON
A.key = B.key
일치하는 항목이 없으면 누락된 쪽에 null값이 포함되어 출력된다.
중첩 for문과 같은 원리로, 조건에 맞는 조인을 하는 방법
for each row in t1 matching reference key {
for each row in t2 matching reference key {
if row satisfies join conditions, send to client
}
}
랜덤 접근에 대한 비용이 많이 증가하므로, 대용량의 테이블에선 사용하지 않는다.
각각의 테이블을 조인할 필드 기준으로 정렬하고, 이후 조인 작업을 수행하는 조인
해시 테이블을 기반으로 조인하는 방법