2014-12-04 52 views
0

在纯(Postgres的风格)SQL,一个可以做类似如下:“SELECT DISTINCT ON”或等同于油滑(V2.1)

select distinct on (author_id) author_id, title from books; 

这会给我从一个记录每个作者的表格为books。在Scala的Slick库中是否有相同的内容? (我正在使用版本2.1.0)。

+0

或者您可以移植这个现有的SQL,并专注于使用Anorm的映射结果。 – cchantep 2014-12-04 08:46:20

+0

Anorm并不是一个真正的实用选项......在这一点上,我已经深入Slick了。 – 2014-12-04 21:51:19

+0

没有什么能够防止混合,至少在技术上是如此。 – cchantep 2014-12-05 00:48:51

回答

1

据我所知,必须在已经实现的集合上使用distinct - 无法生成所需的SQL。

Github在Queryhttps://github.com/slick/slick/issues/96上请求操作distinct存在问题。

有时当我需要供应商/特定于SQL的数据库操作时,我会在数据库模式中添加一个VIEW,然后通过Slick使用VIEW ...也许这是您的一个选择。

随着油滑,你可以(当然)use plain-old SQL, too

+0

感谢 - 几乎我所想的......我在Github中注意到了这个问题,尽管它*看起来并没有做到我需要的东西;它看起来好像(从那里的评论来看)它只会支持基于整行的区分,而我期望在单列上作出区分,同时为每个匹配返回整行。 – 2014-12-04 21:50:42