我正在做一个小论坛。我想要的是在列出论坛主题时,显示主题创建者和最后回复者的用户名和头像。
当前查询(目前只查找主题创建者的头像+用户名)为:
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)的用户名+头像?
谢谢!
最佳答案
你必须分两次加入用户表:
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 ...;
关于mysql - 从同一个表中选择两个不同的值(mysql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6009403/