我有这样一个简单的聊天数据库:

id | from | to | message
---|------|----|-----------------
1  | 1    | 2  | hello
2  | 1    | 2  | are you there?
3  | 2    | 1  | yes I'm here!

还有第二个表保存了名字
`users`.`firstname` and `users`.`lastname`

我试着把两者结合起来,所以在检索聊天时,我也会有两个参与者的名字。我现在的问题是这样的:
SELECT
  `messages`.*,
  CONCAT(`users`.`firstname`, " ", `users`.`lastname`) as `nameFrom`
FROM `messages`
  INNER JOIN
     `users` ON `messages`.`from` = `users`.`id`

它工作得很好,但是如果我尝试添加另一个连接,只需将messagesfrom更改为messagesto就可以得到错误。
检索聊天日志时,如何组合每个参与者的名字和姓氏?
谢谢

最佳答案

看起来你想同时得到发送者和接收者?如果是,则可以将Users表连接两次:

SELECT
  `messages`.*,
  CONCAT(u.`firstname`, " ", u.`lastname`) as `nameFrom`,
  CONCAT(u2.`firstname`, " ", u2.`lastname`) as `nameTo`
FROM `messages`
  INNER JOIN
     `users` u ON `messages`.`from` = u.`id`
  INNER JOIN
     `users` u2 ON `messages`.`to` = u2.`id`

关于mysql - MySQL聊天表,加入用户名?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15615480/

10-16 13:13