1

私は次のものを持っています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か?

4

1 に答える 1

4

esqueleto docs にgroupByは、使用方法の良い例が含まれています。

さらに、 「はじめに」セクションを読むと、以下に相当するものを含むクエリの例がいくつか表示されますtable.*

do people <- select $
             from $ \person -> do
             return person

この 2 つを組み合わせると、次のように機能するはずです。

select $ from \(g `LeftOuterJoin` gh) -> do
  on (gu ^. GroupId ==. g ^. Id)
  groupBy (g ^. Id)
  return (g, countRows)
于 2016-07-15T18:11:40.430 に答える