SQL에서 세 개의 테이블을 조인하는 방법: 초보자 가이드
Min-jun Kim
Dev Intern · Leapcell

Key Takeaways
- SQL 조인은 연결된 JOIN 문을 사용하여 세 개의 테이블을 결합할 수 있습니다.
- 올바른 열을 식별하는 것은 성공적인 다중 테이블 조인에 필수적입니다.
- 테이블 별칭을 사용하면 쿼리 가독성이 향상됩니다.
데이터베이스를 사용할 때 여러 테이블에 분산된 데이터를 검색해야 하는 경우가 종종 있습니다. SQL 조인은 관련 열을 기반으로 둘 이상의 테이블에서 데이터를 결합하는 데 도움이 되는 강력한 도구입니다. 하지만 세 개의 테이블을 조인해야 하는 경우는 어떻게 될까요? 이 문서에서는 명확한 예와 함께 SQL에서 세 개의 테이블을 단계별로 조인하는 방법을 살펴봅니다.
SQL 조인 이해
세 개의 테이블을 조인하기 전에 조인이 무엇인지 빠르게 검토해 보겠습니다. SQL 조인은 외래 키와 같이 테이블 간의 관련 열을 기반으로 두 테이블의 레코드를 함께 가져옵니다.
가장 일반적으로 사용되는 조인은 다음과 같습니다.
- INNER JOIN: 두 테이블에서 일치하는 행만 반환합니다.
- LEFT JOIN (또는 LEFT OUTER JOIN): 왼쪽 테이블의 모든 행과 오른쪽 테이블의 일치하는 행을 반환합니다. 일치하지 않는 행은
NULL
값을 갖습니다. - RIGHT JOIN (또는 RIGHT OUTER JOIN): 오른쪽 테이블의 모든 행과 왼쪽 테이블의 일치하는 행을 반환합니다.
세 개의 테이블 조인: 기본 사항
여러 JOIN 문을 함께 연결하여 SQL에서 두 개 이상의 테이블을 조인할 수 있습니다. 핵심은 테이블을 연결하는 열을 식별하는 것입니다.
예제 데이터베이스 구조
다음 세 개의 테이블이 있다고 가정해 보겠습니다.
-
Customers
customer_id
customer_name
-
Orders
order_id
customer_id
order_date
-
Products
product_id
product_name
-
OrderDetails
order_id
product_id
quantity
각 주문에 대해 고객 이름, 제품 이름 및 주문 수량을 찾고 싶다고 가정합니다.
세 개의 테이블을 조인하는 SQL 쿼리
이를 위해 다음과 같이 테이블을 조인할 수 있습니다.
SELECT Customers.customer_name, Products.product_name, OrderDetails.quantity FROM Customers INNER JOIN Orders ON Customers.customer_id = Orders.customer_id INNER JOIN OrderDetails ON Orders.order_id = OrderDetails.order_id INNER JOIN Products ON OrderDetails.product_id = Products.product_id;
작동 방식은 무엇입니까?
-
Customers INNER JOIN Orders 고객을 주문과 조인합니다.
-
Orders INNER JOIN OrderDetails 주문을 특정 세부 정보(주문된 제품)와 조인합니다.
-
OrderDetails INNER JOIN Products 주문 세부 정보를 제품 정보와 조인합니다.
각 조인은 관련 열(일반적으로 외래 키)을 사용하여 테이블을 하나 더 연결합니다. 이를 통해 SELECT
문에서 조인된 모든 테이블의 필드에 액세스할 수 있습니다.
명확성을 위해 별칭 사용
쿼리를 더 읽기 쉽게 만들려면 테이블 별칭을 사용할 수 있습니다.
SELECT c.customer_name, p.product_name, od.quantity FROM Customers c INNER JOIN Orders o ON c.customer_id = o.customer_id INNER JOIN OrderDetails od ON o.order_id = od.order_id INNER JOIN Products p ON od.product_id = p.product_id;
다른 유형의 조인
위의 예에서는 INNER JOIN
을 사용하지만 필요에 따라 LEFT JOIN
또는 RIGHT JOIN
을 사용할 수 있습니다. 예를 들어 주문하지 않은 고객을 포함하려면 Customers와 Orders 사이에 LEFT JOIN
을 사용합니다.
SELECT c.customer_name, p.product_name, od.quantity FROM Customers c LEFT JOIN Orders o ON c.customer_id = o.customer_id LEFT JOIN OrderDetails od ON o.order_id = od.order_id LEFT JOIN Products p ON od.product_id = p.product_id;
결론
SQL에서 세 개의 테이블을 조인하는 것은 테이블 간의 관계를 이해하면 간단합니다. 관련 열에서 항상 조인하여 여러 JOIN 문을 함께 연결하기만 하면 됩니다. 다중 테이블 조인을 마스터하면 데이터에서 훨씬 더 강력한 쿼리와 통찰력을 얻을 수 있습니다.
FAQs
관련 열을 사용하여 여러 JOIN 문을 연결합니다.
예, 필요에 따라 INNER JOIN, LEFT JOIN 또는 RIGHT JOIN을 사용할 수 있습니다.
별칭은 복잡한 쿼리를 더 쉽게 읽을 수 있도록 합니다.
Leapcell은 백엔드 프로젝트 호스팅을 위한 최고의 선택입니다.
Leapcell은 웹 호스팅, 비동기 작업 및 Redis를 위한 차세대 서버리스 플랫폼입니다.
다국어 지원
- Node.js, Python, Go 또는 Rust로 개발하십시오.
무료로 무제한 프로젝트 배포
- 사용량에 대해서만 지불하십시오. 요청이나 요금이 없습니다.
탁월한 비용 효율성
- 유휴 요금 없이 사용한 만큼 지불하십시오.
- 예: $25는 평균 응답 시간 60ms에서 694만 건의 요청을 지원합니다.
간소화된 개발자 경험
- 간편한 설정을 위한 직관적인 UI.
- 완전 자동화된 CI/CD 파이프라인 및 GitOps 통합.
- 실행 가능한 통찰력을 위한 실시간 메트릭 및 로깅.
손쉬운 확장성 및 고성능
- 높은 동시성을 쉽게 처리하기 위한 자동 확장.
- 운영 오버헤드가 없으므로 구축에만 집중할 수 있습니다.
Documentation에서 더 자세히 알아보십시오!
X에서 우리를 팔로우하십시오: @LeapcellHQ