不显示给定条件的任何记录 (SQL)

Don't show any record given a condition (SQL)

早上好,我正在尝试在 MySQL 中执行以下查询: 显示未参与任何 "Juan Perez" 项目的顾问的姓名。 我正在使用以下查询:

SELECT consultant.name, consultant.surname FROM consultor
INNER JOIN participate ON participate.id_consultant = consultant.id
INNER JOIN project ON  project.id = participate.id_project
INNER JOIN cliente ON  client.id = project.id_client
WHERE client.name NOT IN("Juan Perez")

但是当我执行查询时,它只隐藏了表中直接相关的那些。 我怎样才能隐藏顾问出现的其他记录,使他们不出现?

谢谢。

我相信如果在连接到客户端的条件下你排除客户端名称,它会return你想要什么,它应该工作。

SELECT consultant.name, consultant.surname 
FROM consultor
INNER JOIN participate ON participate.id_consultant = consultant.id
INNER JOIN project ON  project.id = participate.id_project
INNER JOIN client ON  client.id = project.id_client and client.name NOT IN ("Juan Perez");

我设法通过以下方式解决了它。感谢大家的帮助。

SELECT consultant.name, consultant.surname FROM consultant 
LEFT JOIN (
           SELECT id_project, participate.id_consultant FROM participate 
           INNER JOIN project 
           USING(id_project) 
           INNER JOIN client ON client.id = project.id_cliente 
                 WHERE client.name like 'Juan Perez'
          )
project ON project.id_consultant = consultant.id 
        WHERE project.id_project IS NULL;