【发布时间】:2014-07-11 13:14:03
【问题描述】:
NH 是否可以创建像
这样的 JOIN SELECT 查询 Select * From table1 Join ( Select * From table2 ...?
以及为什么他不能。
在我的任务中,我有一个简单的表格:
TABLE [Message](
[Id] [int] NOT NULL,
[DocId] [int] NOT NULL,
[RecipientId] [bigint] NOT NULL,
[Text] [nvarchar](255) NULL,
[ArrivalDate] [date] NOT NULL
然后选择:
SELECT msg.*
FROM [Message] msg
JOIN( SELECT msgMaxForDoc.DocId, MAX(msgMaxForDoc.ArrivalDate) AS ArrivalDate
FROM [Message] msgMaxForDoc
GROUP BY msgMaxForDoc.DocId) docAndDate ON msg.DocId = docAndDate.DocId AND msg.ArrivalDate = docAndDate.ArrivalDate
WHERE msg.RecipientId = @UserId
完整任务听起来像:“为用户选择所有消息。如果文档(由 DocId 表示)包含多条消息,则获取最新消息”。结果,我必须为受 UserId 限制的所有 DocId 选择一条最新消息
我在这里发现了一个类似的问题: nhibernate queryover join with subquery to get aggregate column 但这无济于事(我没有任何指向另一个平板电脑的链接 DocId 只是数字)。
这里是Join a Subquery with NHibernate(但我不能将选择分成两部分......)
【问题讨论】:
标签: sql nhibernate fluent-nhibernate