gpt4 book ai didi

scala - 在 Scala slick 中选择 DISTINCT

转载 作者:行者123 更新时间:2023-12-02 20:59:47 25 4
gpt4 key购买 nike

我正在使用 Slick 1,并且我必须能够在查询中应用过滤器来查找与相关表中的条件匹配的所有实体。

这个使用 Slick 文档的示例显示了我正在尝试做的事情(这是一个接近我的情况的人为示例)。

在这里,我想要西海岸供应商提供的所有咖啡。我只想要咖啡,我只对导航到供应商以应用过滤器感兴趣:

val westCoast = Seq("CA", "OR", "WA")
val implicitInnerJoin = for {
c <- Coffees
s <- Suppliers if c.supID === s.id && s.state inSet westCoast
} yield c

这工作正常,但如果供应商表中有多个匹配项,它会重复咖啡。

明显的解决方法是在普通 SQL 中执行 SELECT DISTINCT;但是,我在这里找不到这样做的方法。

理论上你可以这样做:

query.list.distinct

结果返回后;但是,我还实现了 PAGING 支持,因此一旦结果已经从数据库返回,您就不想处理结果。这是分页支持:

query.drop(offset).take(limit).list

所以,简而言之,我需要一种方法来在我的查询中指定 SELECT DISTINCT。

大家有什么想法吗?

最佳答案

作为解决方法,您可以尝试使用 groupBy:

query.groupBy(x=>x).map(_._1)

它应该具有与 unique 相同的语义,但我不确定性能。

关于scala - 在 Scala slick 中选择 DISTINCT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18256768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com