SELECT
문의 각 행에 대해 LEFT JOIN
의 첫 번째 결과를 얻으려고합니다.LEFT JOIN의 첫 번째 결과 만 가져 오기
이제 당장 조인 된 테이블에 100 개의 행이 있으면 SELECT
에서 같은 행을 100 번 얻을 수 있습니다. 첫 번째 행을 조인하면됩니다. 그러면 중복되지 않습니다.
테이블에서 하나 이상의 행을 가져와야하므로 GROUP BY
을 사용할 수 없습니다.
여기 내 쿼리의 기본 버전입니다 :
SELECT bg.PatientID, DATEDIFF(hour, bg.CreateDate, GETDATE()) TimeToTarget
FROM BloodGlucose bg
LEFT JOIN IVProtocol i ON i.PatientID = bg.PatientID
WHERE bg.BGValue >= i.TargetLow AND bg.BGValue <= i.TargetHigh
ORDER BY bg.PatientID ASC
내가 DISTINCT
를 사용하여 시도했지만 bg.CreateDate
의 데이터가 항상 동일하지 않기 때문에 그것은 중복을 반환합니다.
왼쪽에 조인 된 테이블의 첫 번째 행만 있으면됩니다.
아이디어가 있습니까?
감사합니다.
당신은 당신이 "'FIRST'"를 정의하는 방법을 설명 할 수 있습니까? –
'LEFT JOIN'에서 가져온 첫 번째 결과가 필요합니다. 하지만 당신에게 그렇게 말하면, 조인에 대한 순서가 없기 때문에 하위 쿼리가 필요할 것입니다. – TomShreds
그래, 아직도 "첫 번째 결과"가 무슨 뜻인지 모르겠다. –