我的表格如下: -
messageid recipientid senderid senderfirstname message
121 110 104 Noah hii !!
122 110 111 Adam heyy... wots up ??
123 104 115 Emeline hello..
124 104 110 Eliana abc
125 111 110 Eliana yup
126 115 110 Eliana xyz
127 110 104 Noah where are you ?
我希望输出为: -
messageid recipientid senderid senderfirstname message
127 110 104 Noah where are you ?
122 110 111 Adam heyy... wots up ??
我想获取收件人110收到的所有邮件,但我需要获取同一用户的最新记录。
我需要最后一张唱片而不是第一张唱片,因为最后一张唱片是“Noah”的最新唱片。
我应该编写什么SQL查询来实现相同的目标?
答案 0 :(得分:2)
现在您已在评论部分中向您的请求解释了您要查找的内容,以下是实现此目的的方法:您选择所有带有recipientid 110的记录,但每个senderid只需要一个reocrd(GROUP BY),即最高的messageid(MAX)。通过这些消息ID,您可以检索完整的记录。
select *
from thetable
where messageid in
(
select max(messageid)
from thetable
where recipientid = 110
group by senderid
)
order by senderid;
答案 1 :(得分:0)
你应该真正阅读sql查询。
SELECT `messageid`, `recipientid`, `senderid`, `senderfirstname`, `message` FROM `table` WHERE (condition) ORDER BY `messageid` DESC