我觉得完全愚蠢。我对我的 sql 生疏了。
我有两个表,Message 和 MessageThread。每条消息都属于一个使用 ParentTHreadID 作为外键的 MessageThread。您可能可以看到这是怎么回事。
好吧,我想做这样的事情。我想从表、消息和线程中获取列,但是消息的创建日期是该线程中的最大值。因此,每条记录都将包含线程列和一条消息记录的列,该消息记录是该消息线程中最近发布的。
到目前为止,这是我所拥有的所有线程列和消息的 ID。它可以工作,但使用子查询,我必须创建一堆其他子查询才能获取其他列。呸。
select t.*,
(select top 1 m.ID
from Message m
where m.ParentThreadID = t.ID
order by DateCreated desc ) as MessageID
from MessageThread t
奖励指向不仅可以给我 sql,还可以给我 linq to sql 或 linq to nhibernate 的任何人。
谢谢,克雷格