다음 쿼리를 조인으로 다시 작성하려면 어떻게합니까? 나는 그것을 다시 작성하는 것이 더 잘 수행 될 것이라고 생각한다. (나는 이론화하고있다.) 그러나 나는 합류하기가 힘들다. 어떤 도움이라도 대단히 감사합니다.자체에 대한 하위 쿼리를 조인으로 사용하는 쿼리를 다시 작성하는 방법
SELECT O.JOBNUM, O.JOBNAME, O.STARTTS,
(SELECT
MIN(I.STARTTS)
FROM TABLE1 AS I
WHERE
I.STARTTS > O.STARTTS AND
I.JOBNAME = O.JOBNAME)
AS ENDTS
FROM TABLE1 AS O;
기본적으로 위의 쿼리는 주어진 작업 인스턴스의 ENDTS를 검색하는 데 사용됩니다. ENDTS는 저장되지 않고 동일한 태스크가 루프에서 실행될 때 자동으로 계산되므로 주어진 태스크의 ENDTS는 다시 실행될 때 같은 태스크 (이름으로 식별 됨)의 STARTTS입니다. 작업이 아직 실행되지 않으면 ENDTS에 NULL이 적합합니다.
미리 도움을 주셔서 감사합니다. 당신이 JOIN
으로이를 다시 작성하려면
내가 왼쪽 오른쪽 솔루션에 가입 확실하지 않다. 단순히 쿼리 최적화 문제 일 수 있습니다. 시작과 작업 이름에 대한 색인이 있습니까? – Narnian
안쪽과 바깥 쪽의 키워드는 가능한 한 많이 테이블/열로 사용하지 마십시오. – wildplasser
@Narnian. 네. 나는 인덱스를 가지고 있지만 아래에 제안 된 bluefeet이 더 잘 수행하는 참여가 있습니다. – Azeem