0
계정의 최신 행을 찾기 위해 같은 테이블에 조인해야하는 쿼리가 있습니다.동일한 테이블에 조인 할 때 잘못된 SQL을 생성하는 Scalaquery
val all = for {
Join(s,s1) <- Subscriptions leftJoin Subscriptions
on ((a,b) => a.account === b.account && a.id < b.id)
if s1.id.?.isNull
} yield s
이 문제는 Subscription t2 left join Subscription t2
함께 다음과 같은 SQL을
SELECT `t2`.`ACCOUNT`,`t2`.`PLAN`,`t2`.`CALLBACK`,`t2`.`DELETED`,`t2`.`HIBERNATED`,`t2`.`CREATED`,`t2`.`UPDATED` FROM {oj `SUBSCRIPTION` `t2` left outer join `SUBSCRIPTION` `t2` on ((`t2`.`ID`=`t2`.`ID`) and (`t2`.`ID` < `t2`.`ID`))} WHERE (`t2`.`ID` is null)
를 생성합니다. 테이블에는 다른 별명이 있어야합니다.
내가 복사하여이 문제를 해결하려면 입수하고 Subscriptions
에 객체를 붙여
val all = for {
Join(s,s1) <- Subscriptions leftJoin Subscriptions1
on ((a,b) => a.account === b.account && a.id < b.id)
if s1.id.?.isNull
} yield s
이 쿼리는 유효한 SQL을 생성하지만, 이상적인 미만에 쿼리를 변경했습니다.
이 방법이 있습니까? 그 다음 SLICK에 고정되면 스칼라 2.10으로 점프합니다.