在Slick 3.0中加入聚合查询的结果

时间:2016-04-04 13:39:26

标签: 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.run(q2.result).map { result =>
  result.map(r => (r._2, r._1._2))
}

代码类型检查,但是当我运行代码时,我收到错误:

专栏" X2.X6"未找到; SQL查询:选择x2.x3,x2.x4,x5。" ITEM_ID",...来自(选择" ITEM_ID"为x3,count(1)为x4来自&#34 ; ITEM_USES"按" ITEM_ID"按计数排序(1)desc limit 5)x2," ITEMS" x5,其中x2.x6 = x5。" ITEM_ID" [42122-191]

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

我不知道Slick在生成条件或连接时从哪里获取x2.x6标识符。看起来它只是决定生成一个新的标识符。有什么想法吗?

0 个答案:

没有答案