좋아,
먼저 코드
DECLARE @Temp TABLE(
Ref_ID int,
ParentID int
)
INSERT INTO @Temp VALUES (1 , 1)
INSERT INTO @Temp VALUES (2 , 1)
INSERT INTO @Temp VALUES (1 , 2)
INSERT INTO @Temp VALUES (3 , 2)
INSERT INTO @Temp VALUES (1 , 3)
INSERT INTO @Temp VALUES (3 , 3)
INSERT INTO @Temp VALUES (4 ,3)
INSERT INTO @Temp VALUES (2 , 4)
INSERT INTO @Temp VALUES (3 , 4)
--First Example witout Ref_ID
SELECT
DISTINCT ParentID
FROM @Temp
WHERE Ref_ID IN (2,3)
--SECOND Example With Ref_ID
SELECT
DISTINCT ParentID,
Ref_ID
FROM @Temp
WHERE Ref_ID IN (2,3)
첫 번째 쿼리가 ParentID의의 독특한 기록을 반환을보십시오. Ref_Id도 요청하지 않았기 때문에 정상적으로 작동합니다.
Ref_ID를 요청할 때 설명하기 만하면 쿼리가 다른 ParentID를 반환하려고 시도합니다. 하지만 두 개의 ParentID가 4 과 같습니다. 그러나 Ref_ID가 다르면이므로 두 사람 모두 반환합니다. 둘 다 쿼리 규칙과 일치합니다.
통찰력을 주셔서 감사합니다, 나는 별개 또는 하위 쿼리를 무효화하는 "마법의 절"이있을 것으로 생각합니다. :) – Kumar