>데이터 베이스 >MySQL 튜토리얼 >SQL의 CROSS JOIN과 INNER JOIN: 각 조인 유형을 언제 사용해야 합니까?

SQL의 CROSS JOIN과 INNER JOIN: 각 조인 유형을 언제 사용해야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-22 10:16:09668검색

CROSS JOIN vs. INNER JOIN in SQL: When to Use Each Join Type?

SQL의 교차 조인(CROSS JOIN)과 내부 조인(INNER JOIN): 종합 비교

SQL은 CROSS JOIN과 INNER JOIN이라는 두 가지 고유한 연결 유형을 제공하며, 각 연결 유형에는 고유한 애플리케이션 시나리오가 있습니다. 이 기사에서는 이 두 가지 연결 유형의 차이점을 심층적으로 살펴보고 그 이점과 사용 사례를 강조합니다.

CROSS JOIN: 데카르트 곱

카테시안 곱이라고도 하는 교차 조인은 첫 번째 테이블의 모든 행을 두 번째 테이블의 모든 행과 결합합니다. 그러면 조인된 테이블에서 가능한 모든 행 조합을 포함하는 새 테이블이 생성됩니다.

문법:

<code class="language-sql">SELECT *
FROM Table1 CROSS JOIN Table2</code>

예:

'Customers' 테이블과 'Movies' 테이블 간의 교차 조인을 고려해보세요.

<code class="language-sql">SELECT 
    Movies.CustomerID, Movies.Movie, Customers.Age, 
    Customers.Gender, Customers.[Education Level], 
    Customers.[Internet Connection], Customers.[Marital Status], 
FROM   
    Customers 
CROSS JOIN 
    Movies</code>

이 쿼리는 고객과 영화의 가능한 모든 쌍을 반환하므로 많은 수의 행이 생성됩니다.

INNER JOIN: 결과 제한

내부 조인은 ON 절에 지정된 조건을 만족하는 행만 반환합니다. 두 테이블에서 일치하는 값이 있는 행만 선택합니다.

문법:

<code class="language-sql">SELECT *
FROM Table1 INNER JOIN Table2 ON Table1.Column = Table2.Column</code>

예:

이전과 동일한 테이블을 사용하여 CustomerID 열을 사용하여 내부 조인을 만들어 보겠습니다.

<code class="language-sql">SELECT 
    Movies.CustomerID, Movies.Movie, Customers.Age, 
    Customers.Gender, Customers.[Education Level], 
    Customers.[Internet Connection], Customers.[Marital Status]
FROM   
    Customers 
INNER JOIN 
    Movies ON Customers.CustomerID = Movies.CustomerID</code>

이 쿼리는 'Customers' 테이블과 'Movies' 테이블에서 일치하는 CustomerID 행만 반환하여 보다 관련성이 높고 필터링된 결과를 제공합니다.

연결 유형 선택

교차 조인과 내부 조인의 선택은 쿼리의 특정 요구 사항에 따라 다릅니다.

  • CROSS JOIN: 두 테이블의 가능한 모든 행 조합이 필요할 때 사용됩니다.
  • INNER JOIN: 두 테이블에서 일치하는 값이 있는 행만 검색해야 할 때 사용됩니다.

일반적으로 효율성이 높고 결과를 필터링할 수 있는 기능이 있으므로 내부 조인을 사용하는 것이 권장되는 반면, 크로스 조인은 데카르트 곱이 필요한 특정 시나리오에 유용합니다.

위 내용은 SQL의 CROSS JOIN과 INNER JOIN: 각 조인 유형을 언제 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.