2016-07-15 32 views
1

我有以下EntitiesEsqueleto數內選擇

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做什麼?

回答

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)