我想把所有没有CNN_NDP_NO为84的人带回来。
由于有些人可以拥有多个CNN_NDP_NO,因此下面的代码只排除84人的入境,而不是整个人。
SELECT
CLIENT.CLN_SURNAME,
CLIENT.CLN_NINO,
CLIENT.CLN_BIRTH_DATE
FROM
MASTER.CLIENT,
MASTER.CLIENT_NDNP
WHERE
MASTER.CLIENT_NDNP.CNN_NDP_NO not in (84)
and
MASTER.CLIENT.CLN_NO = MASTER.CLIENT_NDNP.CNN_CLN_NO;
以下是对不正确数据的进一步解释......
法瑞尔先生有以下CNN_NDP_NO(43,44,90,96)
由于法瑞尔先生的CNN_NDP_NO为84,他需要从输出中忽略
相反,我为Farell先生(43,90,96)获得了三个条目。显然,一个独特的会给我一个,但对于这个例子我不想。
答案 0 :(得分:1)
您可以使用not exists
SELECT c.CLN_SURNAME, c.CLN_NINO, c.CLN_BIRTH_DATE
FROM MASTER.CLIENT c
WHERE NOT EXISTS (SELECT 1
FROM MASTER.CLIENT_NDNP ndnp
WHERE c.CLN_NO = ndnp.CNN_CLN_NO and ndnp.CNN_NDP_NO = 84
);