不给出条件的任何记录(SQL)

时间:2018-04-06 13:07:13

标签: mysql sql database relational-database

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

df = pd.DataFrame({'STATUS': [['REQUESTED', 'RECEIVED'], ['XYZ'], ['RECEIVED']]},
                  index=[1, 2, 3])
df.STATUS.apply(lambda x : 'RECEIVED' in x)
Out[11]: 
1     True
2    False
3     True
Name: STATUS, dtype: bool

但是当我执行查询时,它只隐藏那些与表中直接相关的查询。 我如何隐藏顾问出现的其他记录,以便它们不出现?

感谢。

2 个答案:

答案 0 :(得分:0)

我认为如果在加入客户端的条件下,你可以在那里排除客户名称它会返回你想要的东西。

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

答案 1 :(得分:0)

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

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;