mySql join - 来自同一个表的多个记录

时间:2012-01-06 15:14:29

标签: sql join

我循环浏览论坛帖子列表,从2个表格postsmembers中提取数据。

我正在使用LEFT JOIN之类的

SELECT m.name, p.title FROM posts LEFT JOIN members m ON p.poster=m.id

一切正常。但我还需要从成员表中提取不同的记录,即p.lastposter的记录。我该怎么做?我不能添加另一个JOIN,因为我已经拉了一个m.name并且不会混淆它吗?

3 个答案:

答案 0 :(得分:2)

您可以使用其他别名添加其他联接:

SELECT m.name, p.title, lp.name AS lastposter 
FROM posts AS p
LEFT JOIN members AS m ON p.poster=m.id
LEFT JOIN members AS lp ON p.lastposter = lp.id

答案 1 :(得分:0)

如果您想要2个不同的rows,可以使用UNION

SELECT m.name, p.title FROM posts LEFT JOIN members m ON p.poster=m.id

UNION

SELECT m.name, p.title FROM posts LEFT JOIN members m ON p.lastposter=m.id

如果您想要row lastposter来自SELECT m.name, p.title, lp.name AS lastposter FROM posts AS p LEFT JOIN members AS m ON p.poster=m.id LEFT JOIN members AS lp ON p.lastposter = lp.id 的更多信息,请执行以下操作:

{{1}}

答案 2 :(得分:0)

  

我无法添加另一个JOIN,因为我已经拉了一个m.name并且不会混淆它吗?

没有

SELECT m.name, p.title, lastpostMembers.name AS lastpostername FROM posts AS p
LEFT JOIN members m ON p.poster=m.id
LEFT JOIN members lastpostMembers ON p.lastposter=lastpostMembers.id

我真的不明白你为什么要离开这里;看起来你真的想要一个内心的联系。