MYSQL查询以返回不在集合中的行

MYSQL查询以返回不在集合中的行,mysql,Mysql,我有两张桌子: 联系人(身份证、姓名) 链接(id、联系人id、来源id) 我有下面的查询,它返回链接表中source_id为8的联系人 SELECT name FROM `Contact` LEFT JOIN Link ON Link.contact_id = Contact.id WHERE Link.source_id=8; 然而,如何返回与source_id为8不相关的所有联系人的列表,我有点困惑。简单的将不会工作,因为没有任何链接的联系人不会返回 谢谢。只要说WHERE Link.s

我有两张桌子:

联系人(身份证、姓名) 链接(id、联系人id、来源id)

我有下面的查询,它返回链接表中source_id为8的联系人

SELECT name FROM `Contact` LEFT JOIN Link ON Link.contact_id = Contact.id WHERE Link.source_id=8;
然而,如何返回与source_id为8不相关的所有联系人的列表,我有点困惑。简单的将不会工作,因为没有任何链接的联系人不会返回


谢谢。

只要说
WHERE Link.source\u id!=8;

只要说
WHERE Link.source\u id!=8;

有一种直接的方法可以按照您所表达的方式来做

选择名称 从…起
其中Link.source_id!=8;

有一种直截了当的方法可以按照你的表达方式来做

选择名称 从…起
其中Link.source_id!=8;

您可以从以下位置更改
where
条件:

Link.source_id = 8;

您也可以使用
代替
=


两者都是

您可以从以下位置更改
的where
条件:

Link.source_id = 8;

您也可以使用
代替
=

两者都是

用途:

   SELECT c.name 
     FROM CONTACT c
LEFT JOIN LINK l ON l.contact_id = c.id
                AND l.source_id = 8
    WHERE l.contact_id IS NULL
使用:

这不应该奏效吗

WHERE Link.source_id <> 8 OR Link.source_id IS NULL
其中Link.source\u id 8或Link.source\u id为NULL
这不应该起作用吗

WHERE Link.source_id <> 8 OR Link.source_id IS NULL
其中Link.source\u id 8或Link.source\u id为NULL

很抱歉受到侮辱,但这是一个典型的“让我尽可能多地获得代表”的愚蠢回答。很抱歉有点苛刻,我想有些人的问题甚至比我的更简单!对不起,这是一个典型的愚蠢的回答:“让我尽可能多地获得声誉”。对不起,这里有点苛刻,我想有些人的问题甚至比我的更简单!很好,非常感谢。我会在几分钟内接受它当我可以@伊格鲁特:NP。您也可以使用
NOT IN
NOT EXISTS
,但在MySQL上,左JOIN/IS NULL更有效:很好,非常感谢。我会在几分钟内接受它当我可以@伊格鲁特:NP。您也可以使用
不在
中或
不存在
,但在MySQL上,左JOIN/IS NULL更有效: