Given 2 tables T1 and T2.
T1 T2
A 1
B 2
C 3
You make a query SELECT * FROM T1, T2.
What is the no: of rows that are fetched from this query?
대답 그것은 카티 제품입니다 9왜이 행에서 9 개의 행을 가져 오나요?
Given 2 tables T1 and T2.
T1 T2
A 1
B 2
C 3
You make a query SELECT * FROM T1, T2.
What is the no: of rows that are fetched from this query?
대답 그것은 카티 제품입니다 9왜이 행에서 9 개의 행을 가져 오나요?
다른 조건이 없으므로이 쿼리는 cartesian product이됩니다. 첫 번째 테이블의 모든 행은 두 번째 테이블의 모든 행과 일치합니다.
결과는 당신이 그것을 물어 무엇을 그
A 1
A 2
A 3
B 1
B 2
B 3
C 1
C 2
C 3
@Klaus Byskov Hoffmann 고마워! – nan
입니다 : 하나 개의 테이블 (3)과 다른 테이블의 모든 행에서 모든 행을 선택 (3) 결합하여 3 * 3 = 9가됩니다.
입니다. T1
의 모든 행과 T2
의 모든 행이 있습니다. 그들은 함께 추가되는 것이 아니라 열이 다르면 작동하지 않습니다. 예를 들어, UNION
으로이 작업을 수행 할 수 있습니다. "카티 션 제품"으로 병합됩니다. 기본적으로 두 테이블의 모든 행 조합을 가져옵니다. 그리고 3*3 = 9
.
@Downvoter : 일반적인 의례로 downvotes를 설명하는 설명을 남겨주세요. –
첫 번째 테이블의 각 레코드가 두 번째 테이블의 각 레코드와 함께 반환되고 결과가 필터링되지 않기 때문에 결과가 필터링되지 않습니다.
정확한 출력은 다음과 같습니다
T1 T2
A 1
A 2
A 3
B 1
B 2
B 3
C 1
C 2
C 3
당신은 출력으로이 9 개 행이 (순서는 다를 수 있음)? –
Google : sql implicit "CROSS JOIN" – onedaywhen