私は完全に愚かだと感じます。私は自分のSQLで錆びています。
MessageとMessageThreadの2つのテーブルがあります。各メッセージは、ParentTHreadIDを外部キーとして使用する1つのMessageThreadに属します。あなたはおそらくこれがどこに向かっているのかを見ることができます。
さて、こういうことをしたいです。テーブル、メッセージ、スレッドの両方から列を取得したいのですが、メッセージの作成日がそのスレッドの最大値です。したがって、各レコードには、スレッド列と、そのメッセージスレッドに最後に投稿された1つのメッセージレコードの列が含まれます。
これが私がこれまでに持っているもので、すべてのスレッド列とメッセージの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をsqlに、またはlinqをnhibernateに与えることができる人を指します。
ありがとう、クレイグ