2011-12-06 4 views
-2

가능한 중복 :
Is it better to do an equi join in the from clause or where clause이 두 SQL 쿼리의 차이점은 무엇이다 - SQL 서버

나는 두 개의 SQL 쿼리를 다음했다. 이 둘의 차이점을 설명해 주시겠습니까?

QUERY : 1

SELECT a.*, b.* 
FROM Table1 a 
INNER JOIN Table2 b 
ON a.id = b.id 
AND a.col = 'value' 

QUERY : 대소 문자가 INNER JOIN에 대한 데이터베이스

+0

'INNER JOIN'의 유일한 차이점은 GROUP BY ALL을 사용하는 경우입니다. –

+0

@MartinSmith 잘 속는 사람에 대한 좋은 캐치, 하나도 찾을 수 없었습니다. – JNK

답변

4

아무것도하지 않는 한이

SELECT a.*, b.* 
FROM Table1 a 
INNER JOIN Table2 b 
ON a.id = b.id 
WHERE a.col = 'value' 

감사의 필터링 JOIN 조건 대 필터링 WHERE 절은 동일한 결과를 제공해야합니다.

OUTER JOIN 인 경우 첫 번째 것은 JOIN 조건 이전에 소스 테이블에서 결과를 사전 필터링하기 때문에 결과가 달라집니다.

+0

나는 AND AND WHERE 조건을 찾고 있습니다. 어느 것을 다른 사람과 함께 사용해야합니까? – user1054625

2

에 켜져

0

예, 모든 것이 거의 같습니다. ID 필드의 철자가 정확하지 않으면 대소 문자를 구분하는 데이터베이스에서 오류를 반환합니다.

1

이 특별한 경우에도 같은 결과이지만 동일한 것은 아닙니다. ON ... AND는 내부 조인 (실제로는 동일하지만 외부 조인에는 해당되지 않음)에만 적용되는 반면 전체 선택에는 WHERE가 적용됩니다.

0

차이점은 완전히 문체입니다. 개인적으로, 나는 'JOIN ... ON a = b'섹션 아래에 테이블 조인을 수행하는 데 핵심적인 절을 넣고 WHERE 절 아래에 필터링을 사용하여 특정 쿼리를 처리해야합니다. . 내부 조인에 대해 이야기하는 한, 기술적 인 이유가 있습니다.