如果我有两个数据库表 users
-> (id, username)
以及 messages
-> (msg_id, sender_id, rec_id, text)
他们两个都加入了 users.id = messages.sender_id
还有 users.id = messages.rec_id
那么我如何打印结果如下
msg_id | sender | reciver | text
------------------------------------
1 | david | michael | hello friend
2 | eva | robert | pick me up
我试过这个
SELECT users.*, messages.*
FROM messages
INNER JOIN users
ON users.id = messages.sender_id
AND users.id = messages.rec_id
但好像没有我想要的那样。。你知道吗
更新它似乎不工作,它给发送者和接收者的名字是相同的,这是错误的!!
msg_id | sender | reciver | text
------------------------------------
1 | david | david | hello friend
2 | eva | eva | pick me up
3条答案
按热度按时间at0kjp5o1#
在您当前的条件下,用户id等于发送方id和接收方id,这意味着您将只查询某人自己发送的消息—这可能不是您想要实现的。相反,你可以加入
users
两次,一次给发送方,一次给接收方:8xiog9wr2#
你可能想加入多次
0ejtzxu13#
你需要两个
join
学生: