【发布时间】:2018-02-24 02:09:06
【问题描述】:
我想在 Slick 中表示以下左外连接:
select * from tableD d
left outer join tableE e on e.ds_sk=d.ds_sk and e.ds_type = d.ds_type
left outer join tableV v on v.es_sk=e.sk and v.var_name=d.var_name
where e.sk=30;
请注意,每个关系都包含两个连接条件。第一个连接条件在tableD和tableE之间,第二个连接条件在tableV、tableE和tableD之间。最后,还有一个where 条件。
这是我的尝试(会引发编译错误):
val query = for {
((d, e), v) <- tableE joinLeft tableD on ((x,y) => x.dsType === y.dsType && x.dsSk === y.dsSk)
joinLeft tableV on ((x,y) => x._1.sk === y.esSk && x._2.varName === y.varName)
if (e.sk === 30)
} yield (d,e,v)
我得到的错误是:
◾value varName 不是 slick.lifted.Rep[Option[tableD]] 的成员
什么是错误以及如何修复此代码?
【问题讨论】: