SQL 조인(JOIN)의 종류

컴퓨터과학·AI
한 줄 정의: 서로 다른 두 개의 데이터베이스 표(테이블)를 공통된 열 값을 기준으로 하나로 합쳐서 보여주는 방법입니다.

쉽게 풀면

한 표에는 "환자ID, 이름"이 있고, 다른 표에는 "환자ID, 검사결과"가 있다고 해봅시다. 두 표를 환자ID를 기준으로 나란히 이어 붙여 "이름, 검사결과"를 한눈에 보고 싶을 때 쓰는 것이 바로 조인(JOIN)입니다. 조인에는 몇 가지 종류가 있습니다. INNER JOIN은 두 표 모두에 값이 있는 경우만 합치고, LEFT JOIN은 왼쪽 표의 모든 행을 기준으로 오른쪽에서 짝이 없으면 빈 값으로 채워 넣습니다. RIGHT JOIN은 그 반대이고, FULL (OUTER) JOIN은 양쪽 표의 모든 행을 다 살려서 짝이 없는 곳은 빈 값으로 표시합니다. 예를 들어 "검사를 받은 환자만" 보고 싶다면 INNER JOIN을, "등록된 환자 전체를 검사 여부와 상관없이" 보고 싶다면 LEFT JOIN을 사용합니다.

왜 중요한가

여러 출처의 데이터를 하나의 분석용 테이블로 통합하는 작업은 임상연구, 사회과학, 데이터 과학 전반에서 분석의 첫 단계이기 때문에, 어떤 조인 방식을 썼는지는 곧 최종 표본의 구성과 결측치 처리 방식을 결정합니다. 조인 방식의 선택은 단순한 기술적 세부사항이 아니라 연구 결과의 타당성과 재현성에 직접 영향을 미치는 방법론적 결정이어서, 데이터 통합 절차를 다루는 논문의 방법론 절에서 자주 명시됩니다.

논문에서는 이렇게 쓰입니다

"환자 등록 테이블과 추적관찰 테이블을 환자 식별번호를 기준으로 LEFT JOIN하여, 추적관찰 기록이 없는 환자도 결측치로 포함한 통합 데이터셋을 구축하였다."

이 문장은 두 원자료(raw data) 테이블을 하나로 합칠 때, 한쪽 표를 기준으로 삼아 대응하는 데이터가 없어도 모두 남기는 방식(LEFT JOIN)을 사용해 데이터셋을 만들었다는 뜻입니다.

"설문 응답 테이블과 인구통계 테이블을 응답자ID 기준 INNER JOIN하여, 두 자료가 모두 존재하는 응답자만을 최종 분석 대상으로 선정하였다."

사회과학 설문 연구에서는 응답 자료와 배경 정보가 모두 갖춰진 사례만 분석에 포함하기 위해 INNER JOIN을 사용하는 경우가 흔하며, 이는 곧 최종 표본 크기가 두 테이블의 교집합으로 줄어든다는 뜻이기도 합니다.

조금 더 깊게 보면

조인은 기준이 되는 열(키)의 값이 양쪽 테이블에서 얼마나 중복되어 있는지에 따라 결과 행의 개수가 예상과 다르게 불어나거나 줄어들 수 있어, 실제 데이터 처리에서는 조인 전후로 행 개수를 확인하는 절차가 권장됩니다. 또한 여러 테이블을 순차적으로 조인할 때는 어떤 순서로 조인하느냐에 따라 중간 단계의 결측 처리 결과가 달라질 수 있어, 복잡한 데이터 통합 파이프라인에서는 조인 순서와 각 단계의 검증도 함께 고려됩니다.

주의할 점

어떤 조인을 쓰느냐에 따라 최종 데이터의 행(row) 개수와 결측치 처리 방식이 크게 달라집니다. 특히 INNER JOIN은 짝이 없는 데이터를 조용히 제외시키므로, 의도치 않게 표본이 줄어들어 분석 결과가 편향될 수 있어 주의해야 합니다.

관련 용어