我正在尝试制作一个聊天系统。但是我无法显示哪个用户连接到哪个用户。
'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
上述查询仅显示与接收消息的用户的连接,而不是与发送消息的用户的连接。例如,山姆向弗雷迪发送了消息,所以我的查询显示弗雷迪他收到了消息,但没有显示山姆他发送了消息
这是我的桌子
id | from_user | to_user | msg
------------------------------------
1 | 1 | 3 | hi
您必须联接表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
.