SQL-仅显示不符合参数的值。

SQL-仅显示不符合参数的值。,sql,Sql,我正试图让所有没有84号CNN的人回来 由于有些人可能有多个CNN(美国有线电视新闻网)NDP(美国有线电视新闻网)NO(美国有线电视新闻网),下面的“我的代码”只排除84人的输入,而不是整个人 SELECT CLIENT.CLN_SURNAME, CLIENT.CLN_NINO, CLIENT.CLN_BIRTH_DATE FROM MASTER.CLIENT, MASTER.CLIENT_NDNP WHERE MASTER.CLI

我正试图让所有没有84号CNN的人回来

由于有些人可能有多个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国家发展计划第43、84、90、96号

由于法雷尔先生的CNN NDP编号为84,因此需要从输出中忽略他

相反,我得到了法雷尔先生43、90、96的三份参赛作品。显然,一个独特的将给我一个,但在这种情况下,我不希望有

您可以在不存在的情况下执行此操作


感谢您的快速回复@Gordon Linoff。不幸的是,这带来了没有CNN\u NDP\u NO的结果。我尝试了'ndnp.CNN\u NDP\u NO为空,84但没有修复它。有什么想法吗?“@AmitSingh如前所述,我似乎仍然得到空值。我也试过………'代码“从MASTER.CLIENT c中选择c.CLN_姓氏、c.CLN_NINO、c.CLN_出生日期,如果不存在,从MASTER.CLIENT_NDNP NDNP NDNP中选择1,其中c.CLN_NO=NDNP.CNN_CLN_NO和NDNP.CNN_NDP NO=84和NDNP.CNN_NDP_NO=NULL;在搜索了更多出现的尼诺之后,我还遇到了一些人,他们有4个CNN,其中一个84岁,所以这个解决方案不起作用,有什么想法吗?@jack.r.barnes。我看不出有什么理由会影响这个问题。任何记录为84的CLN_NO都应完全排除在结果集中。如果得到重复的结果,请使用group by或选择distinct。
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
                 );