No mostrar ningún registro dada una condición (SQL)

No mostrar ningún registro dada una condición (SQL)

Buenos días, estoy tratando de realizar la siguiente consulta en MySQL: Indicar el nombre y apellido de los consultores que no han participado en ningún proyecto “Juan Pérez”. Estoy usando la siguiente consulta:

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")

Pero cuando ejecuto la consulta, solo oculta aquellos que están directamente relacionados en las tablas. ¿Cómo podría ocultar los otros registros donde aparecen los consultores para que no aparezcan?

Gracias.

Mostrar la mejor respuesta

Puede intentar usar Left JOIN en lugar de Inner join.

¿Puede darnos algunos datos de ejemplo que muestren las tablas y los datos que obtiene y que no desea

@Aurelian creo que no me expliqué bien, la idea es que si la consultora "Sofia" participa en un proyecto para el cliente "Juan" y en otro para el cliente "Pedro", no muestre "Sofia", sino " Camila" solo participa en el proyecto de "Pedro" si él se lo muestra en el resultado de la consulta.

@SimonR, lea el comentario anterior, si pudiera ayudarme, sería genial. Gracias.

Verifique el nombre de la tabla dentro de la instrucción where..

Creo que debería funcionar si en las condiciones de unirse al cliente excluyes el nombre del cliente allí, te devolverá lo que deseas.

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");

Me las arreglé para resolverlo de la siguiente manera. Gracias a todos por la ayuda.

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;