我有这样一个简单的聊天数据库:
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`
它工作得很好,但是如果我尝试添加另一个连接,只需将
messages
from
更改为messages
to
就可以得到错误。检索聊天日志时,如何组合每个参与者的名字和姓氏?
谢谢
最佳答案
看起来你想同时得到发送者和接收者?如果是,则可以将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/