我有以下Entities
:
Group
name Text
GroupUser
user UserId
group GroupId
我想做这样的查询:
select g.* /* Everything from g */
, count(gu.id) groupUsersCount
from Group g
left outer join GroupUser gu on gu.groupId = g.id
group by g.id
可以使用Esqueleto
完成吗?
答案 0 :(得分:4)
esqueleto docs for groupBy
包含如何使用它的好例子。
此外,通过阅读Getting Started部分,您会看到几个查询示例,包括相当于table.*
的内容:
do people <- select $
from $ \person -> do
return person
将两者放在一起意味着这样的事情应该起作用:
select $ from \(g `LeftOuterJoin` gh) -> do
on (gu ^. GroupId ==. g ^. Id)
groupBy (g ^. Id)
return (g, countRows)