Php Mysql正在通过获取组中的最后一个条目
嘿,这是我的MySQL查询Php Mysql正在通过获取组中的最后一个条目,php,mysql,sql,Php,Mysql,Sql,嘿,这是我的MySQL查询 $userid="id of logged in user"; 它给出两个用户之间记录的第一条消息,而不是最后一条。我希望最后一封邮件显示在邮件收件箱中。我使用此查询在收件箱中显示与登录用户(或您可以说是特定用户)的不同用户的唯一对话 你可以检查demo@试试这个 SELECT id, message, user_name, receiver_id, sender_id FROM chat WHERE post_time = MAX(post_time) AND
$userid="id of logged in user";
它给出两个用户之间记录的第一条消息,而不是最后一条。我希望最后一封邮件显示在邮件收件箱中。我使用此查询在收件箱中显示与登录用户(或您可以说是特定用户)的不同用户的唯一对话 你可以检查demo@试试这个
SELECT id, message, user_name, receiver_id, sender_id
FROM chat
WHERE post_time = MAX(post_time) AND (receiver_id =$userid
OR sender_id =$userid)
GROUP BY GREATEST( receiver_id, sender_id ) , LEAST( receiver_id, sender_id )
ORDER BY id DESC
LIMIT 0 , 1000
这可能对你有帮助
SELECT id, message, user_name, receiver_id, sender_id
FROM chat
WHERE receiver_id =$userid
OR sender_id =$userid
HAVING post_time = MAX(post_time)
GROUP BY GREATEST( receiver_id, sender_id ) , LEAST( receiver_id, sender_id )
ORDER BY id DESC
LIMIT 0 , 1000
我自己解决了这个密码。。。。。。。。。。。。。如果有人需要它,它将帮助其他人也谢谢你
SELECT m.*
FROM (
SELECT sender_id + receiver_id -1 AS other_recipient_id, MAX( id ) AS id
FROM chat
WHERE (sender_id =*user's_id*
OR receiver_id =*user's_id*)
GROUP BY sender_id + receiver_id -1
)mm
INNER JOIN chat m ON mm.id = m.id
ORDER BY id ASC
谢谢你的回复,但你的代码要么是错误的,要么不是我的工作。对不起…………我已经发布了新的答案。这可能会帮助您考虑提供适当的DDL(和/或SQLFIDLE)以及所需的结果集;查看与您的MySQL服务器版本对应的手册,了解使用near'或sender\u id=HAVING post\u time=MAX(post\u time)GROUP BY MASTER(receiver\u)的正确语法(第4行),只需在“GROUP BY”之后写入“HAVING”子句,然后尝试返回仅发送一条消息的对话抱歉……。)
SELECT m.*
FROM (
SELECT sender_id + receiver_id -1 AS other_recipient_id, MAX( id ) AS id
FROM chat
WHERE (sender_id =*user's_id*
OR receiver_id =*user's_id*)
GROUP BY sender_id + receiver_id -1
)mm
INNER JOIN chat m ON mm.id = m.id
ORDER BY id ASC