크로스 조인 사용

완료됨

크로스 조인은 단순히 두 테이블의 카티전 곱입니다. ANSI SQL-89 구문을 사용하면 두 테이블을 연결하는 필터를 중단함으로써 크로스 조인을 만들 수 있습니다. ANSI-92 구문을 사용하면 약간 더 어렵습니다. 이것이 좋은 이유는 크로스 조인은 일반적으로 사용자가 원하는 기능이 아니기 때문입니다. ANSI-92 구문을 사용하면 실수로 크로스 조인으로 끝낼 가능성이 매우 낮습니다.

카티전 곱을 명시적으로 만들려면 CROSS JOIN 연산자를 사용합니다.

이 연산을 수행하면 가능한 모든 입력 행 결합을 사용하여 결과 집합이 생성됩니다.

SELECT <select_list>
FROM table1 AS t1
CROSS JOIN table2 AS t2;

이 결과는 일반적으로 원하는 출력이 아니지만, 명시적 CROSS JOIN을 작성하기 위한 몇 가지 실용적인 응용 방법이 있습니다.

  • 범위에서 가능한 각 값에 대한 행을 포함하는 숫자 테이블 만들기.
  • 테스트용으로 대량의 데이터 생성. 테이블이 자신에게 크로스 조인될 때, 행이 100개 정도인 경우 사용자의 개입이 거의 없이도 쉽게 10,000개의 출력 행을 생성할 수 있습니다.

CROSS JOIN 구문

CROSS JOIN을 통해 쿼리를 작성할 때 다음 지침을 고려합니다.

  • 행 일치가 수행되지 않으므로 ON 절이 사용되지 않습니다. (CROSS JOIN과 함께 ON 절을 사용하면 오류가 발생합니다.)
  • ANSI SQL-92 구문을 사용하려면 CROSS JOIN 연산자를 사용하여 입력 테이블 이름을 구분합니다.

다음 쿼리는 직원과 제품의 모든 결합을 만들기 위한 CROSS JOIN 사용의 예제입니다.

SELECT emp.FirstName, prd.Name
FROM HR.Employee AS emp
CROSS JOIN Production.Product AS prd;