小编Yar*_*lav的帖子

如何将AND添加到连接SLICK

我有问题在SLICK写入查询这是我对MySql数据库的请求:

SELECT * FROM readings AS r
JOIN parameters AS p
LEFT JOIN sensorvalues AS sv ON sv.parameter_id=p.id AND sv.reading_id=r.id
Run Code Online (Sandbox Code Playgroud)

如何使用SLICK编写它?它真的缺乏关于文档连接的信息.

更新1 我尝试了所有组合,即使是这样的组合

val q = for{
  Join(p,sv) <- Parameters leftJoin SensorValues on (_.id is sv.parameter_id)
  r <- Readings if sv.reading_id is r.id
} yield(r,p,sv)
Run Code Online (Sandbox Code Playgroud)

在这种情况下编译器给我一个错误 wrong number of parameters; expected = 2

所以我将sv.parameter_id替换为_.parameter_id,现在它认为Join It说:

constructor cannot be instantiated to expected type; found : models.Join required: (models.Parameters.type, models.SensorValues.type)

我正在使用最新版本的SLICK,它已被弃用.我手动导入

import scala.slick.lifted.Join 现在它看起来像是常规的innerJoin,因为它使用WHERE而不是put和ON之后.

SQL生成的购买查询:

select x2.id, x2.platform_id, x2.date, x3.x4, x3.x5, x3.x6, …

scala playframework scalaquery slick

5
推荐指数
1
解决办法
3416
查看次数

标签 统计

playframework ×1

scala ×1

scalaquery ×1

slick ×1