Scala Slick 3.0中聚合查询结果的连接

Scala Slick 3.0中聚合查询结果的连接,scala,slick,Scala,Slick,如何在Slick中对聚合查询的结果执行联接 我目前正在尝试以下方法,尝试计算一个项目的使用次数,然后查找5个最常见项目的详细信息: val q = itemUses .groupBy(_.itemID) .map { case (id, uses) => (id, uses.length)} .sortBy(_._2.desc).take(5) val q2 = q.join(items).on(_._1 === _.itemID) db.r

如何在Slick中对聚合查询的结果执行联接

我目前正在尝试以下方法,尝试计算一个项目的使用次数,然后查找5个最常见项目的详细信息:

val q = itemUses
        .groupBy(_.itemID)
        .map { case (id, uses) => (id, uses.length)}
        .sortBy(_._2.desc).take(5)
val q2 = q.join(items).on(_._1 === _.itemID)
db.run(q2.result).map { result =>
  result.map(r => (r._2, r._1._2))
}
代码类型会检查,但当我运行代码时,会出现以下错误:

未找到X2.X6列;SQL查询:选择x2.x3、x2.x4、x5.ITEM_ID。。。从选择项_ID为x3,从项_选择计数1为x4,从项_使用分组按项_ID顺序按计数1描述限制5 x2,项x5,其中x2.x6=x5.ITEM_ID[42122-191]

[…以上是ITEMS表中的数据列,为简洁起见排除在外]

我不知道在生成条件或联接时,Slick从何处获取x2.x6标识符。看起来它刚刚决定生成一个新的标识符。有什么想法吗