1
我試圖做兩個表上的複雜查詢。它們看起來象下面這樣:油滑3.0.0綜合查詢
表1:
id:
name:
table2Id:
version:
表2:
id:
comments:
假設我有一個代表這些表的相應油滑類,我試圖讓所有的元素表1和表2滿足以下條件:
Table1.table2Id === Table2.id and max(Table1.version)
我嘗試了以下方法:
val groupById = (for {
elem1 <- table1Elems
elem2 <- table2Elems if elem1.id === elem2.id
} yield (elem1, elem2)).groupBy(_._1.id)
我知道我必須映射groupById並查找最大版本,但我沒有得到正確的語法!任何幫助?
我需要的是有效的下面的SQL查詢的油滑相當於:
SELECT *
FROM t t1
WHERE t1.rev = (SELECT MAX(rev) FROM t t2 WHERE t2.id = t1.id)
表2中沒有修訂字段,所以地圖(_。rev)不起作用?可能是我的問題可能是錯的。對不起!如果您注意到表結構,版本存在於表1中而不是表2中。所以我想要的是,Table1中的最大版本是針對表2中匹配的給定ID的最大版本。 – sparkr
我修改了我的其他帖子,這對我正在嘗試做的操作稍有不同要求。 http://stackoverflow.com/questions/30407289/slick-2-1-0-filter-max-version-in-a-table你可以看看並建議嗎? – sparkr
您的兩個查詢都不起作用。你有更好的主意嗎?建議? – sparkr