2016-07-15 5 views
1

У меня есть следующие Entities:Esqueleto подсчитывать внутри выберите

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) 

 Смежные вопросы

  • Нет связанных вопросов^_^