希望你能再次帮助我:)。
嗯,我所遇到的问题类似于我昨天发布的问题,但问题已经延长。
我们有三张桌子:
如上所述,此问题与this问题非常相似。
结果是什么?好吧,我拿回一张桌子,上面写着居住在法兰克福的工人的身份证和姓名。
现在我还应该取回ID&S;以及居住在法兰克福并在Onkologie工作站工作的工人的姓名。
我该怎么做?
到目前为止我的代码:
SELECT pfleger.PNR, Name
from mitarbeiter, ...
JOIN pfleger on (mitarbeiter.PNR=pfleger.PNR)
JOIN ...
where Ort='Frankfurt' and Name='Onkologie'
我不知道怎么做第二次加入。
答案 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'