-3

我有两个表如下:

users
 -id (primary key, AUTO_INCREMENT)
 -username (varchar)
 -password (varchar)

users_messages
 -id (primary key, AUTO_INCREMENT)
 -message (text)
 -fk sender_id (int)
 -fk receiver_id(int) 
 -sent_date(datetime)
 -is_read(tinyint)

users_messages 中的两个外键都引用同一个表,即用户我想编写一个 sql 查询以获得如下输出:

Message                Sender            Receiver
Message 1 testing      john              sonam
Message 2 testing      meena             shenaz

我怎样才能做到这一点?我需要从 users_messages 表中获取所有消息,其中 sender_id 和 receiver_id 被用户表中的用户名列替换

编辑解决方案:

SELECT m.id, m.message, s.username, r.username FROM users_messages m 
INNER JOIN users s ON m.sender_id = s.id
INNER JOIN users r ON m.receiver_id = r.id
4

1 回答 1

1

尝试

SELECT m.id, m.message, s.username, r.username
FROM users_messages m 
INNER JOIN users s ON m.sender_id = s.id
INNER JOIN users r ON m.receiver_id = s.id
于 2012-07-23T02:28:48.853 回答