我有一个user表,例如

userId
userName


我有一个message表,例如

messageId
messageToId
messageFromId
messageContent


我正在尝试进行查询以提取一条消息,而且还要根据messageToIdmessageFromId从用户表中获取用户名。

我之前在表格之间只有1个字段来完成此操作,例如

SELECT message.*, user.userName
  FROM message, user
 WHERE user.userId = message.messageToId
   AND messageId = (whatever)


但是我在2个链接上遇到了麻烦。

我想要的结果如下:

messageId
messageToId
toUserName
messageFromId
fromUserName
messageContent


任何帮助将不胜感激,或者如果有人尝试使用PHP / MySQL尝试私人消息系统的其他方式。

最佳答案

您只需要使用joins和不同的表别名:

SELECT m.*, u1.userName AS toUserName, u2.username AS fromUserName
FROM message m INNER JOIN user u1 ON m.messageToId = u1.userId
    INNER JOIN user u2 ON m.messageFromId = u2.userId
WHERE messageId = "XXX";

关于php - mysql:链接具有2个不同字段的2个表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8358457/

10-11 07:37