MySQL从两个表中选择,用用户名替换ID

MySQL从两个表中选择,用用户名替换ID,mysql,sql,Mysql,Sql,我有两张这样的桌子: TABLE: users id | username ---------------- 1 | nick1 2 | nick2 TABLE: messages id | from | to | text -------------------------------- 1 | 1 | 2 | Hi man! 2 | 2 | 1 | Oh, hi. 所以,我需要选择用用户名替换from和to的代码 我

我有两张这样的桌子:

TABLE: users
id  |  username
----------------
1   |  nick1
2   |  nick2

TABLE: messages
id  |  from  |  to  |  text
--------------------------------
1   |  1     |   2  |  Hi man!
2   |  2     |   1  |  Oh, hi.
所以,我需要选择用用户名替换from和to的代码

我需要为我的应用程序选择代码,并将ID替换为用户名:


非常感谢大家。

您必须使用别名加入用户表两次:

  select * from messages 
  join users ufrom on from = ufrom.id 
  join users uto on uto.id=to

您需要将表消息与表用户连接两次:


您要选择什么?所有消息都是表中的,但不是from和to,而是它们的用户名?到目前为止您尝试了什么?
SELECT
    m.id,
    u1.username,
    u2.username,
    m.text 
FROM
    messages AS m
INNER JOIN
    users AS u1 ON u1.id = m.from
INNER JOIN
    users AS u2 ON u2.id = m.to