MySQL - 更多连接运算符,更多别名和错误1066

时间:2015-12-15 20:58:57

标签: mysql join operator-keyword mysql-error-1066

希望你能再次帮助我:)。

嗯,我所遇到的问题类似于我昨天发布的问题,但问题已经延长。

我们有三张桌子:

Table: pfleger PFLEGER

Table: station

Table: mitarbeiter Mitarbeiter

如上所述,此问题与this问题非常相似。

结果是什么?好吧,我拿回一张桌子,上面写着居住在法兰克福的工人的身份证和姓名。

现在我还应该取回ID&S;以及居住在法兰克福并在Onkologie工作站工作的工人的姓名。

我该怎么做?

到目前为止我的代码:

SELECT pfleger.PNR, Name
from mitarbeiter, ...
JOIN pfleger on (mitarbeiter.PNR=pfleger.PNR)
JOIN ...
where Ort='Frankfurt' and Name='Onkologie'

我不知道怎么做第二次加入。

2 个答案:

答案 0 :(得分:0)

根据提供的表名和表名列更新。

注意:我们在您的基本查询中删除了mitarbeiter之后的,表示法。

我没有在mitabeiter中看到PNR所以我假设stationID是他们加入的方式。

SELECT * 
FROM pfleger P
INNER JOIN Station S
 on S.StationId = P.StationID
INNER JOIN mitarbeiter M
 on M.pnr = S.pnr
WHERE M.ORT='Frankfurt' and P.name = 'Onkologie'

我做出的假设: pfleger.stationID与station.stationID具有外键关系 mitarbeiter.PNR与station.PNR有外键关系

我们在这里使用内连接,因为我们只想要存在于所有3个表中的Mitarbeiter。 否则我们可以使用外连接并返回那些没有记录的人。 (意思是不知道他们在哪里工作它可能是'Onkologie'但我们不知道因为没有记录。)

答案 1 :(得分:0)

你可以试试这样的事情

select m.PNR, m.Name
from Mitarbeiter m
inner join Station s on s.PNR = m.PNR
inner join Pfleger p on p.StationID = s.StationID
where
  m.Ort = 'Frankfurt'
  and p.Name = 'Onkologie'