
프로그래밍의 중첩 반복문처럼 한 테이블의 각 행마다 다른 테이블을 반복 검색하여 조건이 일치하는지 확인합니다.

선행테이블(Outer Table)에서 조인 조건을 만족하는 한 행을 읽는다.
(이때 조건을 만족하지 않는 행은 필터링되어 조인 대상에서 제외된다)
해당 행의 조인 키 값을 가지고 후행테이블(Inner Table)에서 인덱스 또는 탐색 방법으로 조인 키 존재 여부를 확인한다.
조인 키가 존재하면, 후행테이블의 해당 행을 읽고 추가 조건이 모두 만족되는지 검증한다.
모든 조인 조건이 만족되면, 조인된 결과 행을 추출 버퍼(임시 결과 저장 공간)에 저장한다.
반복문의 외부에 있는 테이블을 선행 테이블 또는 외부 테이블 (Outer Table)이라고 하고, 반복문의 내부에 있는 테이블을 후행 테이블 또는 내부 테이블(Inner Table)이라고 합니다.

양쪽 테이블을 조인 키로 정렬한 후, 정렬된 상태에서 병합하여 조인을 수행합니다.

선행테이블에서 조인 조건 및 필터 조건을 만족하는 모든 행을 찾는다.
조건에 맞는 선행테이블의 모든 행을 조인 키 기준으로 정렬한다.
후행테이블에서도 조인 조건 및 필터 조건을 만족하는 모든 행을 찾는다.
조건에 맞는 후행테이블의 모든 행을 조인 키 기준으로 정렬한다.
정렬된 결과를 이용하여 조인을 수행하며 조인에 성공하면 추출버퍼에 넣음

한 테이블을 해시 테이블로 구성하고, 다른 테이블을 해시 기반 탐색으로 조인하는 방식입니다.

선행 테이블에서 주어진 조건을 만족하는 행을 찾음
선행 테이블의 조인 키를 기준으로 해시함수를 적용하여 해시 테이블을 생성 -> 조인 컬럼과 SELECT 절에서 필요로 하는 컬럼도 함께 저장
후행 테이블에서 주어진 조건을 만족하는 행을 찾음
후행 테이블의 조인 키를 기준으로 해시 함수를 적용하여 해당 버킷을 찾음 -> 조인 키를 이용해서 실제 조인될 데이터를 찾음
조인에 성공하면 추출버퍼에 넣음
Reference
- https://velog.io/@eunhye_/SQL-%EC%A1%B0%EC%9D%B8Join-%EC%88%98%ED%96%89-%EC%9B%90%EB%A6%AC
- https://velog.io/@yhlee9753/%EC%B9%9C%EC%A0%88%ED%95%9C-SQL-%ED%8A%9C%EB%8B%9D-4.3-%ED%95%B4%EC%8B%9C-%EC%A1%B0%EC%9D%B8
- https://github.com/BCS-study/basic-computer-science/blob/main/Computer%20Science/Database/7.%20%EC%A1%B0%EC%9D%B8%EC%9D%98%20%EC%9B%90%EB%A6%AC.md