好吧,
首先代码
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