不显示给定条件的任何记录 (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;
早上好,我正在尝试在 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;