我对scala很陌生。目前正在研究scala2和postgres的是DB。现在,我已经在下面用类似slick的方式编写了一个Left innerjoin查询
val executors = TableQuery[Executors]
val innerJoin = (for {
(rel,a) <- executors joinLeft executors on ( (e1, e2) => {
e1.column1 === e2.column1 && e1.column2 === e2.column2
} ) if rel.id === id
} yield rel.name)
当我尝试打印innerJoin.result.statements.headOption
时,它给了我想要的查询
但我面临的问题是,我想要的不是rel.name
,而是a.name
。但是我得到了错误value name is not a member of slick.lifted.Rep[Option[Executors]]
。
我查看了slick
文档,不确定这里缺少什么。
我已经通过a.map(_.name)
修复了它。参考https://scala-slick.org/doc/3.0.0/queries.html