2014-12-04 50 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