我有两个表(订单、事务)和一个仅保留 OrderId 和 TransactionsId 列的 TransactionsOrders 查找表。
如果一个交易失败 (n) 次,则一个订单可以有多个交易。并且 Order 对象对交易一无所知。
我相信我将需要使用预测,因为如果该订单存在成功的交易记录,我将需要返回所有订单属性以及 Transactions 表中的两个属性(Amount 和 TransactionDate) 。下面是生成正确输出的 SQL。
SELECT o.*, ct.TransactionDate, ct.Amount from Orders o
LEFT OUTER JOIN
(SELECT * FROM CreditTransactionsOrders cto
INNER JOIN CreditTransactions ct
ON ct.Id = cto.CreditTransactionId
WHERE ct.Successful = 1) as ct
ON o.Id = ct.OrderId
我试图尝试创建此 QueryOver 并从 Order 对象和 Transaction 对象中投影我需要的属性,但无法正确转换此 SQL 查询。
最终结果是我需要返回所有订单,如果该订单存在成功的订单,我需要从 Transaction 对象返回金额和日期。我不确定我是否必须使用别名,但到目前为止我所有的尝试都没有成功。