如果尝试选择数据库中的所有邮件并将其显示给我的网站用户。
消息正在进行选择和分组,但是每组user_id中的最近消息消息始终是发送的第一条消息。
我目前的代码是:
$result_messages = mysqli_query($con, "SELECT * FROM users_messages WHERE message_sender='". $_SESSION["login_id"] ."' OR message_receiver='". $_SESSION["login_id"] ."' GROUP BY message_receiver ORDER BY message_id DESC")
or die(mysqli_error($con));
这是用户发送的第一条正在显示的消息,但我希望在用户组中选择最近的消息。
我收到了所有用户的消息,用户的行按最近的对话排序。
但在最近的对话中,它选择了对话中发送的第一条消息
答案 0 :(得分:1)
新答案: 你需要的是一个像这样的相关子查询:
SELECT um.* FROM user_messages um
WHERE um.message_id IN
(
(SELECT MAX(message_id) FROM users_messages WHERE
message_sender='". $_SESSION["login_id"] ."' OR
message_receiver='". $_SESSION["login_id"] ."' GROUP BY message_receiver)
)
ORDER BY um.message_id DESC
答案 1 :(得分:0)
按ID排序,每次插入都会递增。