Php 仅显示来自每个用户的最后一条消息
您好朋友我想显示此表中每个用户的最后一条消息,假设Php 仅显示来自每个用户的最后一条消息,php,mysql,Php,Mysql,您好朋友我想显示此表中每个用户的最后一条消息,假设$\u会话['id']为1,因此我想显示每个来自或发送给用户的最后一条消息1这是我的查询: SELECT*FROM message WHERE(msg_FROM='1')或(msg_to='1')按msg_FROM分组,msg_to ORDER BY MAX(msg_id)DESC 但当我运行此程序时,它会显示来自msg_from列和msg_to列中用户的两条消息,并且不会显示最后插入的消息,伙计们,我需要帮助。因为您是按MAX(msg_id)订
$\u会话['id']
为1,因此我想显示每个来自或发送给用户的最后一条消息1这是我的查询:
SELECT*FROM message WHERE(msg_FROM='1')或(msg_to='1')按msg_FROM分组,msg_to ORDER BY MAX(msg_id)DESC
但当我运行此程序时,它会显示来自msg_from列和msg_to列中用户的两条消息,并且不会显示最后插入的消息,伙计们,我需要帮助。因为您是按
MAX(msg_id)订购的DESC
然后您只需要第一个结果,因为它是最新的结果,然后您可以执行以下操作
SELECT TOP 1 * FROM message where msg_id IN (SELECT msg_id FROM message WHERE (msg_from='1') OR (msg_to='1') GROUP BY msg_from,msg_to ORDER BY MAX(msg_id) DESC);
或
希望它有帮助:)因为您是通过
MAX(msg_id)DESC
订购的,所以您只需要第一个结果,因为它是最新的,然后您可以执行以下操作
SELECT TOP 1 * FROM message where msg_id IN (SELECT msg_id FROM message WHERE (msg_from='1') OR (msg_to='1') GROUP BY msg_from,msg_to ORDER BY MAX(msg_id) DESC);
或
希望有帮助:)从其他人处获取user-1的最后消息:
SELECT * FROM message WHERE msg_to = '1'
GROUP BY msg_from ORDER BY msg_date DESC
正在从user-1向其他人提取最后的消息:
SELECT * FROM message WHERE msg_from = '1'
GROUP BY msg_to ORDER BY msg_date DESC
我没有使用您的
MAX(msg_id)
来订购数据,而是使用日期来获取最新消息。从其他人获取用户1的最后消息:
SELECT * FROM message WHERE msg_to = '1'
GROUP BY msg_from ORDER BY msg_date DESC
正在从user-1向其他人提取最后的消息:
SELECT * FROM message WHERE msg_from = '1'
GROUP BY msg_to ORDER BY msg_date DESC
我没有使用您的
MAX(msg\u id)
来排序数据,而是使用日期来获取最新消息。您需要选择msg\u from
或msg\u to
,不能同时放置两者。您需要选择msg\u from
或msg\u to
,不能同时放置两者。