假设您有以下架构:
CREATE TABLE Data
(
ID INT,
CXL INT
)
INSERT INTO Data (ID, CXL)
SELECT 1, NULL
UNION
SELECT 2, 1
UNION
SELECT 3, 2
UNION
SELECT 5, 3
UNION
SELECT 6, NULL
UNION
SELECT 7, NULL
UNION
SELECT 8, 7
列CXL是取消特定ID的ID。因此,例如,ID为1的表中的第一行是好的,直到它被ID:2(CXL列)取消。 ID:2一直很好,直到它被ID:3取消。 ID:3是好的,直到它被ID:5取消,所以在这个序列中,最后一个“GOOD”ID是ID:5。
我想找到所有“好”ID 所以在这个例子中它将是:
Latest GOOD ID
5
6
8
如果你想玩这个,这是一个小提琴: http://sqlfiddle.com/#!6/68ac48/1
答案 0 :(得分:1)
SELECT D.ID
FROM Data D
WHERE NOT EXISTS(SELECT 1
FROM Data WHERE D.ID = CXL)
答案 1 :(得分:0)
select Id
from data
where Id not in (select cxl from data where cxl is not null)