如何以最精确、最佳的方式将此 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
- 描述
- 说话人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)