두 테이블, Policy
및 Coverage
이 있습니다. Coverage(policyID)
은 Policy(policyID)
을 참조하는 외래 키입니다. Coverage
에도 열 covTypeID
및 incurred
이 있습니다. 정책 당 여러 보상 범위가 있습니다. 각 정책에 대해 단 하나의 행으로 이러한 테이블을 조인하는 쿼리를 작성했습니다. 이것은 내가 생각 해낸 것입니다 :T-SQL 다중 조인 대안
select polNo, alIncur, apdIncur, cargoIncur
from Policy as P
left join (
select policyID, incurred as alIncur
from Coverage
where covTypeID = 1
) as ALC on ALC.policyID = P.policyID
left join (
select policyID, incurred as apdIncur
from Coverage
where covTypeID = 2
) as APDC on APDC.policyID = P.policyID
left join (
select policyID, incurred as cargoIncur
from Coverage
where covTypeID = 3
) as CARGOC on CARGOC.policyID = P.policyID;
나는이 쿼리는 범위 테이블을 통해 세 개의 패스를하게 알고 내가 JOIN
들뿐만 아니라 매우 느린 것을 들었습니다. 이 작업을 수행하는 더 빠른 방법이 있다고 생각합니다. 가장 좋은 방법이 무엇인지 궁금합니다.
감사합니다, 그것은 훨씬 더 간결 내가 가진 것보다입니다. 그렇다면 성과를 향상시킬 방법이 없다고 생각하십니까? 나는 그것이 나의 응용을 위해 너무 느리지 않을 것이지만 지식을 위해서 알고 싶다. –
올바른 색인을 사용하는 테이블에서 세 조인은 매우 빠릅니다. 이 경우 성능에 대해 걱정하지 않아도됩니다. –
멋진 정보 고든, 고마워. –