2013-10-01 2 views
1

AgentFareSalesHeader은 각각 hdrGuidhdrGuid, DocumentNumber을 열로 갖는다. 문서 번호를 기반으로 쿼리를 수행해야하지만 다음 두 쿼리 중 가장 적합한 쿼리를 파악할 수는 없습니다.SQL 문 구조화

SELECT agf.Fare , agf.Tax . agf.Commission 
FROM AgentFare as agf 
    INNER JOIN SalesHeader as h ON agf.hdrGuid = h.hdrGuid AND h.DocumentNumber = 'XYZ' 

또는

SELECT agf.Fare , agf.Tax . agf.Commission 
FROM AgentFare as agf 
    INNER JOIN SalesHeader as h ON agf.hdrGuid = h.hdrGuid 
WHERE h.DocumentNumber = 'XYZ' 

2의 어느 것이 더 적합?

답변

1

두 개의 테이블을 조인해야하는 열을 정의하려면 "ON"문을 사용해야합니다. "WHERE"문은 결과를 필터링하기위한 것입니다.

두 번째 옵션이 더 적절합니다.

2

첫 번째 방법이 더 적합합니다. 두 번째 쿼리와 비교할 때 시간이 오래 걸리기 때문에.

+0

내가 물었던 것이 그 것이다. 감사합니다 .KT –

+1

왜 시간이 덜 걸릴 것이라고 생각하십니까? –

+0

첫 번째 경우에 원하는 모든 필터로 두 테이블을 조인합니다. 그러나 다른 경우에는 먼저 조인을 수행 한 다음 하나의 필터를 넣습니다. 두 번째 쿼리에 더 많은 시간이 소요됩니다. –

1

개인 취향의 사례 일 수 있습니다. 내 취향은 두 번째입니다. 당신이 가입하고있는 것들과 당신이 필터링하고있는 것이 무엇인지는 분명합니다. 'XYZ'를 매개 변수로 대체하도록 코드를 변경하면 두 번째 방법이 훨씬 쉽습니다. 나는 바닥에 '필터'를 찾을 것을 기대한다.