この sql ステートメントを最も正確で最適な方法で Slick に変換するにはどうすればよいですか。
select t.*, count(v.userId) as vote from Talk t inner join Vote v on t.id = v.talkId group by t.id
v. talkId列はTalk のid列への外部キーです
トーク モデル:
- ID
- 説明
- Speaker_id
- 誓約日
- create_date_time
- locked_date
- is_approved
投票モデル:
- ユーザーID
- talk_id
私はこれを試しましたが、例外SlickException: Cannot select Path s2 in Ref s3 をスローします
val x = for {
t <- models.slick.Talks
v <- models.slick.Votes if t.id === v.talkId
} yield (t, Query(models.slick.Votes).filter(_.talkId === t.id).length)
val y = x.groupBy(_._1.id)