Bas*_*sel 1 mysql sql inner-join
我在mysql数据库中有两个表,它们如下所示:
USERS : id, username
POSTS : id, post, poster_id, posted_id
Run Code Online (Sandbox Code Playgroud)
现在我想获取最后10个帖子,其中包含poster_id的用户名(撰写帖子的人)和posted_id的用户名(帖子已写入的墙的所有者)
我用这个查询:
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
Run Code Online (Sandbox Code Playgroud)
但正如你所看到的,我只是为poster_id获取了一个用户名是否有办法在同一个内连接语句中获取posted_id的用户名?
您应该加入用户两次:
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
Run Code Online (Sandbox Code Playgroud)
唯一的要求是为每个表分配一个别名