0

大家好,我有这个查询来获取用户 X 的所有对话以及最后一条消息插入,我的问题是它为每个对话选择了 2 个结果,并且为了正常工作,每个对话的结果应该是 1 行。

这是我的查询,在这种情况下,我正在尝试获取有关 id 为 1 的用户的对话

收件箱_msg 表 在此处输入图像描述

inbox_join 表

在此处输入图像描述

SELECT DISTINCT (
inbox_join.id_conversation
), user_chat.name AS name_conv, user_chat.surname AS surname_conv, user_chat.id, (

SELECT DISTINCT (
message
)
FROM inbox_msg
WHERE msg.id_conversation = inbox_msg.id_conversation
ORDER BY occured_at DESC 
LIMIT 1
) AS last_msg, users.name, users.surname
FROM inbox_join
INNER JOIN inbox_msg AS msg ON msg.id_conversation = inbox_join.id_conversation
INNER JOIN users ON users.id = msg.id_user
INNER JOIN users AS user_chat ON user_chat.id <>1
AND (
inbox_join.id_user_2 = user_chat.id || inbox_join.id_user = user_chat.id
)
WHERE inbox_join.id_user =1
OR inbox_join.id_user_2 =1
4

0 回答 0