mysql数据库中有两个表,它们如下所示:
USERS : id, username
POSTS : id, post, poster_id, posted_id
现在我想用poster_id的用户名(写文章的人)和posted_id的用户名(写文章的墙的所有者)得到最后10个帖子。
我使用以下查询:
SELECT posts.*,users.username as poster_username FROM posts
INNER JOIN users on posts.poster_id = users.id
ORDER BY timestamp DESC
LIMIT 0,10
但是正如您所看到的,我只获得了poster_id的一个用户名,是否有一种方法可以在相同的内部join语句中获取posted_id的用户名?
发布于 2013-10-30 08:29:42
您应该加入用户两次:
SELECT posts.*,
u1.username as poster_username,
u2.username as posted_username
FROM posts
INNER JOIN users u1 on posts.poster_id = u1.id
INNER JOIN users u2 on posts.posted_id = u2.id
ORDER BY timestamp DESC
LIMIT 0,10
唯一的要求是为每个表分配一个别名。
https://stackoverflow.com/questions/19677205
复制相似问题