MySQL查询没有得到所需的结果

时间:2017-11-19 16:25:00

标签: mysql sql

我试图在他的“functienaam”中获得所有“afdelingen”2和“afdelingen.naam”背后的“directeur”的名字。但我只得到“afdelingen.naam”,其名称为“Directeur”。

我如何在此结果中获得另一个“afdelingen.naam”。

这就是我目前所拥有的:

SELECT afdelingen.naam, personeel.voornamen, personeel.tussenvoegsels, personeel.achternaam, rollen.functienaam
FROM `afdelingen` INNER JOIN
     personeel_afdeling
     ON afdelingen.id = personeel_afdeling.afdeling_id INNER JOIN 
     personeel
     ON personeel_afdeling.personeel_id = personeel.id INNER JOIN
     rollen
     ON personeel_afdeling.rol_id = rollen.id
WHERE rollen.id LIKE 1

A quick overview of the tables that are used

目前的结果:Disign& Ontwikkeling | Wilhelmus Frederikus Aloisius |范|热纳尔她| DIRECTEUR

期望的结果:

  • Verkoop&行政管理
  • 设计& Ontwikkeling | Wilhelmus Frederikus Aloisius |面包车 |热纳尔她| DIRECTEUR

1 个答案:

答案 0 :(得分:1)

@rickdenhaan提到的左连接只是其中的一部分;您还要过滤rollen.id = 1。既然“Verkoop& Administratief”(我认为这是正确的单数?)没有Directeur,那么你将使用WHERE子句从结果集中删除该行。

不是使用WHERE进行过滤,而是将过滤器添加到连接条件中,这样您才能加入Directeur角色。如果没有Directeur,请使用LEFT JOIN确保您不加入任何内容,而不是在没有相应角色的情况下从数据集中删除行。