光滑的子选择和加入

时间:2015-08-27 11:29:20

标签: mysql scala slick-3.0

我有一个关于从几张桌子中选择的问题。

例如,我有3个依赖表,想要选择数据。 使用加入方法

  val q = tableQ
      .join(t1)
      .join(t2)
      .join(t3)
      //exclude myself
      .filter(el => el._1._2._1.id =!= el._1._1._1.id)
...

看起来非常难看。可以光滑3使用类似子查询的东西。

例如

tableQ.filter(el => t1.filter(...)).filter(el => t2.filter(...))

BR!

1 个答案:

答案 0 :(得分:0)

也许monadic-joins

val monadicInnerJoin = for {
  c <- coffees
  s <- suppliers if c.supID === s.id
} yield (c.name, s.name)

您可以尝试类似

的内容
val monadicInnerJoin = for {
  c <- coffees
  s <- suppliers filter(_.x === y) if(condition)
} yield (c.name, s.name)