Я чувствую себя совершенно глупо. Я ржавый с моим sql.
У меня есть две таблицы: Message и MessageThread. Каждое сообщение принадлежит одному MessageThread с использованием ParentTHreadID в качестве внешнего ключа. Вы, наверное, видите, куда это идет.
Ну, я хочу сделать что-то подобное. Я хочу получить столбцы из обеих таблиц, сообщений и потоков, но где дата создания сообщения является максимальной в этой теме. Таким образом, каждая запись будет содержать столбцы потока и столбцы для одной записи сообщения, которая является самой последней публикацией в этой цепочке сообщений.
Вот то, что у меня есть, которое дает мне все столбцы потока и идентификатор сообщения. Это работает, но использует подзапрос, и мне нужно было бы сделать кучу других подзапросов, чтобы получить другие столбцы. Тьфу.
select t.*,
(select top 1 m.ID
from Message m
where m.ParentThreadID = t.ID
order by DateCreated desc ) as MessageID<br>
from MessageThread t</p>
<p>
Бонус указывает любому, кто может не только дать мне sql, но и linq к sql или linq к nhibernate.
Спасибо,
Craig