我有问题在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, …