5

我有一个光滑的示例查询,如下所示:

val query =
  (for {
    (company,loc) <- Company leftJoin Location  on (_.locId === _.id)
    (_,typeof) <- Company leftJoin Types on (_.typeId === _.id)
  } yield (company, loc, typeof))

是进行多个联接的更好方法吗?

我已经尝试了多个使用 slick的连接中的建议,但导致了错误。

4

3 回答 3

4

这工作正常。

for {
    ((company,geo),typeof) <- Company 
        leftJoin Location on (_.locId === _.id) 
        leftJoin Business_Levels on (_._1.typeId === _.id)
}
于 2013-09-04T09:37:13.717 回答
2

您可以正常链接连接:

for {
    (company, location, type) <- Company 
        leftJoin Location  on (_.locId === _.id) 
        leftJoin Types on (_._1.typeId === _.id)
} yield (company, location, type)

顺便说一句,我很确定这个词type是一个 scala 保留字。

编辑:在 dsr301 的评论之后的第 3 行添加了 _.1。

于 2013-09-04T09:12:20.923 回答
1

您可以从 scala days 演示文稿中查看关于 slick 的自动连接技巧 - http://www.parleys.com/play/51c2e20de4b0d38b54f46243/chapter50/agenda

检查时间为 0:27:30

于 2013-09-04T09:14:45.090 回答