SQL查询应该是什么才能获得所需的结果?

时间:2014-02-25 10:15:33

标签: sql

我的表格如下: -

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查询来实现相同的目标?

2 个答案:

答案 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