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

MySQL - More Join operators, more aliases and Error 1066

希望你能再次帮助我:)

好吧,我遇到的问题与我昨天发布的问题类似,但它被扩展了。

我们得到三个table:

弗莱格

车站

米塔贝特

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

结果如何?好吧,我取回一份 table,其中包含居住在法兰克福的工人的 ID 和姓名。

现在我应该另外取回居住在法兰克福并在名为 Onkologie 的车站工作的工人的 ID 和姓名。

我应该怎么做?

到目前为止我的代码:

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

我不知道如何进行 2nd JOIN。

根据为 table 提供的 table 名称和列名称更新。

注意:我们在您的基本查询中删除了 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 table 中的 Mitarbeiter。 否则我们可以使用外连接和 return 那些没有记录的人。 (意思是不知道他们在哪里工作,可能是 'Onkologie' 但我们不知道,因为没有记录。)

你可以试试这样的

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'