有没有办法避免这个子选择?我试图使这个查询尽可能高效,并在这样做时试图避免子选择。
我正在按 ID_NUM 查找表上最近替换的行。
子选择已到位,因此我只带回最近替换的行。这是最好的方法吗?
该查询以我想要的方式完美运行,因此请随意忽略最后一个小子选择。
SELECT
A.ID_NUM,
A.DOB,
A.NAME,
A.REPLACED_TMESTMP
FROM MYTABLE A, MYTABLE B
WHERE
A.ID_NUM = B.ID_NUM
AND A.REPLACED_TMESTMP IS NOT NULL
AND B.REPLACED_TMESTMP IS NULL
AND A.DOB <> B.DOB
several other conditions...
AND A.REPLACED_TMESTMP
= (SELECT MAX(C.REPLACED_TMESTMP)
FROM MYTABLE C
WHERE C.ID_NUM = A.ID_NUM
AND A.REPLACED_TMESTMP IS NOT NULL
)
;
这是一些伪代码,可帮助您了解我需要做什么
Select all from table
where a duplicate ID number exists
that has an active row (no replaced time stamp)
and has an inactive row(s)
only bring back the most current replaced row for each ID num.