【问题标题】:Scala Slick filter and joinScala Slick 过滤器并加入
【发布时间】:2016-05-21 12:05:22
【问题描述】:

在 Slick 中执行过滤器连接时,以下两种方法之间有什么区别?

val query = for {
 c <- coffees if c.price < 9.0
 s <- c.supplier -- assuming there is a foreign key
} yield (c.name, s.name)

val query = for {
 (cof, sup) <- coffees.filter(_.price < 9.0) join supplier on(_.supId === _.id)
} yield (cof.name, sup.name)

【问题讨论】:

    标签: scala slick


    【解决方案1】:

    第一个是隐式连接,第二个是显式连接。 Slick 为前者生成一个WHERE 子句,例如:WHERE c.price &lt; 9 AND c.supId = s.id。然而后者会生成一个JOIN,如JOIN supplier s ON c.supId = s.id。你可以看看these examples

    【讨论】:

    • 这就是我的答案。也许我应该问你为什么要做一个与另一个..
    • 我认为this 会是您问题的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-30
    相关资源
    最近更新 更多