Exposed 0.27.1 是否能够翻译以下 SQL 语句?
SELECT FirstName, LastName,
(SELECT COUNT(O.Id)
FROM "Order" O
WHERE O.CustomerId = C.Id) AS OrderCount
FROM Customer C;
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的,但不幸的是子查询独立于查询的其余部分工作。
val query = Customer
.leftJoin(Order, { Customer.id }, { Order.customerId })
.slice(
Customer.firstName,
Customer.lastName,
intLiteral(Order
.innerJoin(Customer, { Order.customerId }, { Customer.id })
.slice(Order.id.count())
.select { Order.customerId eq Customer.id }
.first()[Order.id.count()].toInt())//.alias("OrderCount")
)
.selectAll()
Run Code Online (Sandbox Code Playgroud)
此外,如果可能的话,我如何使用别名从 ResultRow 获取结果?按照这个例子,解决方案似乎是将整个子查询与alias()方法调用存储在单个变量中,但这看起来很难看。有更好的方法吗?