두 가지 쿼리를 비교하려고합니다.
쿼리 1 :
SELECT a,b,c,d,e
FROM tableA
LEFT JOIN tableB
ON tableA.a=tableB.a
WHERE tableA.b=tableB.b AND tableA.c=tableB.c AND tableA.d=tableB.d AND tableA.e=tableB.e
쿼리 2 :
SELECT a,b,c,d,e
FROM tableA
LEFT JOIN tableB
ON tableA.a=tableB.a AND tableA.b=tableB.b AND tableA.c=tableB.c AND tableA.d=tableB.d
WHERE tableA.e=tableB.e
이 두 쿼리가 동일한 결과를 제공한다고 말할 수 있습니까?
또한 첫 번째 쿼리가 더 큰 WHERE조건 을 수행하기 위해 더 큰 테이블을 작성한다고 말하는 것이 맞습니다 . 두 번째 경우에는 간단한 테이블 WHERE이 적용 되는 더 작은 구성 테이블이 있습니다.
결과가 같다고 가정하면 어떤 쿼리를 선호해야합니까? 명백한 성능 문제가 있습니까?
그래. 나는 당신이 말하는 것을 따릅니다.
—
Geoff
INNER JOIN성능에 대한 질문을 편집하도록 수정 해도 여전히 유효합니까?
내부 가입의 경우 성능 차이가 없어야합니다. 즉, 가독성과 의도를 올바르게 표현하려면의
—
Aaron Bertrand
ON및 기준에서 조인 기준을 사용해야 합니다 WHERE.
@ ypercube 맞아, 나는 그 상태를 놓쳤다.
—
Lamak
INNER JOIN일 것이지만,LEFT JOIN이것으로 다른 결과를 반환합니다. 기본적으로WHERE두 번째 검색어에 추가 한 조건은 다음에서 전환합니다JOIN.INNER JOIN