我正在尝试建立一个聊天系统。但是我无法显示哪个用户连接到哪个用户。
'SELECT *
FROM accounts
INNER JOIN messages
ON accounts.id = messages.from_user WHERE to_user = ? AND from_user != ? GROUP
BY from_user';
mysqli_stmt_bind_param($stmt,'ss',$user,$user); // $user is a session user
上面的查询仅显示与接收消息的用户的连接,而不显示与发送消息的用户的连接。例如sam向freddy发送了消息,因此我的查询显示freddy他收到了消息,但没有显示sam他发送了消息
这是我的桌子
id | from_user | to_user | msg
------------------------------------
1 | 1 | 3 | hi
答案 0 :(得分:1)
您必须两次连接表accounts
才能获取发送消息的用户和发送消息的用户的详细信息:
SELECT *
FROM messages m
INNER JOIN accounts a1 ON a1.id = m.from_user
INNER JOIN accounts a2 ON a2.id = m.to_user
这将为您提供messages
表中所有消息的详细信息。
然后,您可以使用WHERE
应用任何条件或使用GROUP BY
进行分组。