2011-05-15 162 views
1

我在制作一个小论坛。我想要的是在列出论坛主题时,显示发起主题的人员和最后回复人员的用户名和头像。从同一个表中选择两个不同的值(mysql)

当前查询(目前仅发现主题的创作者的头像+用户名)是:

SELECT 
    forum_topics.primkey, 
    forum_topics.title, 
    forum_topics.creatorid, 
    forum_topics.last_reply_poster, 
    users.username, 
    users.avatar, 
    forum_tracks.lastmark 
FROM 
    users, 
    forum_topics 
    LEFT JOIN forum_tracks 
     ON forum_tracks.userid='".$_SESSION['loggeduserkey']."' 
     AND forum_tracks.topic_id=forum_topics.primkey 
WHERE 
    forum_topics.cat_id='".$forum_id."' 
    AND users.userkey=forum_topics.creatorid 
ORDER BY ...; 

所以,我怎么能修改上面的查询,以便还找到last_reply_poster用户名+头像(用户的ID)?

谢谢!

回答

1

你必须加入users表中两次:

SELECT 
    forum_topics.primkey, 
    forum_topics.title, 
    forum_topics.creatorid, 
    forum_topics.last_reply_poster, 
    users.username, 
    users.avatar, 
    u2.username, 
    u2.avatar, 
    forum_tracks.lastmark 
FROM 
    users, 
    users as u2, 
    forum_topics 
    LEFT JOIN forum_tracks 
     ON forum_tracks.userid='".$_SESSION['loggeduserkey']."' 
     AND forum_tracks.topic_id=forum_topics.primkey 
WHERE 
    forum_topics.cat_id='".$forum_id."' 
    AND users.userkey=forum_topics.creatorid 
    AND u2.userkey=forum_topics.last_reply_poster 
ORDER BY ...; 
+0

它的工作原理。非常感谢你! :) – 2011-05-15 16:09:20

相关问题