Mysql 在不同字段上联接表两次

Mysql 在不同字段上联接表两次,mysql,outer-join,Mysql,Outer Join,在主题中,我有两个字段,ID为主题作者(poster_ID),还有一个字段,ID为在该主题中发布最新消息的播放机(last_poster) 然后我根据players表中的ID得到作者的名字 我能知道最后一张海报的名字吗 添加和p.id=t.last_poster不要给出任何错误,但我应该如何打印它?as将打印主题的作者。您需要加入玩家表两次:每列一次。 您需要为players表使用别名,以及为列使用不同的输出名称(否则$row['name']会变得混乱) 在php中,您可以使用别名引用这些列 S

在主题中,我有两个字段,ID为主题作者(poster_ID),还有一个字段,ID为在该主题中发布最新消息的播放机(last_poster)

然后我根据players表中的ID得到作者的名字

我能知道最后一张海报的名字吗


添加
和p.id=t.last_poster
不要给出任何错误,但我应该如何打印它?as
将打印主题的作者。

您需要加入玩家表两次:每列一次。
您需要为players表使用别名,以及为列使用不同的输出名称(否则$row['name']会变得混乱)

在php中,您可以使用别名引用这些列

SELECT t.*, f.name AS forum, p.name as poster_name, lp.name as lastposter_name
FROM topics t 
LEFT JOIN forums f ON f.id = t.forum_id 
LEFT JOIN players p ON p.id = t.poster_id
LEFT JOIN players lp ON lp.id = t.last_poster

为什么选择f.name两次?
SELECT t.*, f.name AS forum, p.name as poster_name, lp.name as lastposter_name
FROM topics t 
LEFT JOIN forums f ON f.id = t.forum_id 
LEFT JOIN players p ON p.id = t.poster_id
LEFT JOIN players lp ON lp.id = t.last_poster
$creator = $row['poster_name'];
$lastposter = $row['lastposter_name'];