我正在使用 C# 和 .NET Framework 4.0 开发实体框架代码优先库。
我的数据库上有这张表:
SentBy
和SentTo
列是用户表的 FK。
我想获取已向另一个用户发送消息的用户,但我只想获取一次。为此,我使用以下 SQL 语句:
select distinct SentBy, DateUtcSent
from Messages where isAFriendshipRequest = 0 and SentTo = 15
order by DateUtcSent DESC;
我这样做是order by DateUtcSent DESC;
为了先发送最新消息。
这个想法是为每个向用户 15 发送消息的用户获取一行。
但我明白了:
如您所见,我两次获得用户 2。
我不需要最后一行。
在这里,我试图获取已向用户 15 发送消息的每个不同用户,并获取结果中的用户 ID、dateUtcSent 和正文。
我怎样才能不多次获得 sentBy 值?
更新
而且,如果我想这样做:
select distinct SentTo, DateUtcSent
from Messages where isAFriendshipRequest = 0 and SentBy = 15
order by DateUtcSent DESC;
然后,合并两个结果,无需重复用户并获取最后一条消息。
我该怎么做?