0
我有两个表(消息和用户)。我想从消息表中为特定的ad_id选择最后一个(msg_id,text),并且需要从用户表中选择用户的名称。如何从消息表中选择最后一个文本
SELECT u.id
, m.date
, m.ad_id
, max(m.msg_id)as msg_id
, u.first_name
, m.text
, m.u_to_id
, m.u_from_id
FROM user u
JOIN messages m
ON CASE WHEN m.u_from_id ='14' THEN u.id = m.u_to_id
ELSE u.id = m.u_from_id END
AND (m.u_from_id='14' OR m.u_to_id='14')
AND m.ad_id='20'
GROUP BY CONCAT(m.ad_id,u.id)
ORDER by m.msg_id DESC
这个查询工作,但我不能选择T中的最后m.text Table structure
抱歉地说..查询结果不是预期的一个。我给出了“ON CASE WHEN m.u_from_id = '14'那么u.id = m.u_to_id ELSE u.id = m.u_from_id END”,因为id = '14'的人正在阅读消息,所以不是选择他的名字选择其他人员姓名 – Sujith
GROUP BY CONCAT(m.ad_id,u.id)是因为避免在特定的ad_id上存在多个用户的消息。抱歉的混乱。 – Sujith