首页 > 解决方案 > 如何过滤 mysql 查询结果我正在创建聊天应用程序我需要基于登录用户的最后一条消息结果

问题描述

如果他/她发送或接收到任何人,我需要登录用户所有最后的消息

SELECT chat.id, chat.sender_id,chat.receiver_id,us.user_nicename as    sender_name, u.user_nicename as reciver_name,(SELECT v.message FROM wp_vendor_customer_chat as v where v.id=MAX(chat.id)) as message,chat.sent_date 

FROM wp_vendor_customer_chat as chat 
left join wp_users us on chat.sender_id = us.id 
left join wp_users u on chat.receiver_id = u.id 
WHERE receiver_id=1 OR sender_id=1 
GROUP BY chat.sender_id, chat.receiver_id

['sqlquery']https://hagglerplanet.jkssoftsolutions.com/wp-content/uploads/2019/02/Untitled.png

标签: phpmysqli

解决方案


我找到了解决我的问题的方法。

 SELECT wp_vendor_customer_chat.*,us.user_nicename as sender_name, u.user_nicename as reciver_name FROM wp_vendor_customer_chat
left join wp_users us on wp_vendor_customer_chat.sender_id = us.id
left join wp_users u on wp_vendor_customer_chat.receiver_id = u.id
WHERE wp_vendor_customer_chat.id IN (
    SELECT MAX(id) AS last_msg_id 
    FROM wp_vendor_customer_chat WHERE `receiver_id` = ".$vendor_id." OR `sender_id` = ".$vendor_id." 
    GROUP BY IF(`sender_id` =".$vendor_id.", `receiver_id`, `sender_id`)
)

我已经发布了解决方案,因为如果有人面临同样的问题


推荐阅读