2013-04-29 3 views
0

A, BC 세 테이블이있는 데이터베이스에서 SQL select 쿼리를 시뮬레이트하는 사용자 지정 인터프리터를 작성해야합니다. 내 질문은 다음과 같습니다 : 다음 쿼리는 동일한 결과를 반환합니까? 내가 쓴대로SQL 쿼리 결과

select A1 
from A 
where A1 = 1; 

select A1 
from A, C 
where A1 = 1; 

는이 두 가지 때문에 from 절에 추가 된 테이블의 서로 다른 결과를 제공합니다. 그러나 그것이 옳은 것인지 확실하지 않습니다. 결과가 from 절의 테이블 또는 where 절의 조인 (또는 그 부족)의 테이블에 의존해야합니까?

답변

2

두 번째는 de 테이블에 일치하는 모든 행과 C 테이블의 모든 행을 반환합니다. 이 테이블 사이에는 관계가 정의되어 있지 않기 때문입니다. 흔히 데카르트 제품이라고 부릅니다.

A와 C 사이의 관계를 원할 경우 일치하는 패턴의 경우 A.C_ID = C.ID와 같이 이들 사이에 조인이 필요합니다. 원하는 결과 집합에 따라 오른쪽 조인.

+1

'CROSS JOIN (교차 결합)'이라고도합니다. – RickF