#scala
#scala
Вопрос:
Я хочу получить sql следующим образом:
ВЫБЕРИТЕ v0.`uid`, v0.`title`, v0.`price`, v0.`publishtime`, v0.`status`, v0.`type`, v0.`is_lfst`, v0.`app_image` ИЗ `news` v0 ЛЕВОЕ СОЕДИНЕНИЕ `news_zq` v1 НА v0.`id` = v1.`nid` ГДЕ v0.`status` = 1 И v0.`is_lfst` = 1 И v0.`type` = 2 И v1.`zq_id` = 2 ГРУППА ПО v0.`id` ПОРЯДОК ПО v0.`publishtime` DESC ОГРАНИЧЕНИЕ 20 СМЕЩЕНИЕ 0
Я попробовал «DynamicQuery» и «infix», но потерпел неудачу
dynamicQuery[News]
.leftJoin(dynamicQuery[NewsZq]).on((a, b) => a.id == b.nid)
.filter(_._1.status == lift(1))
.filterIf(newsDo.cid.isDefined amp;amp; newsDo.cid.get > 0)(_._1.cid == lift(newsDo.cid.get))
.filterIf(newsDo.`type`.isDefined)(_._1.`type` == lift(newsDo.`type`.get))
.groupBy(_._1.id).map(_._2.map(_._1)) // error
.sortBy(_._1.publishtime)(Ord.desc)
.drop(quote(lift(offset)))
.take(quote(lift(limit)))
.map(_._1)
Комментарии:
1. Почему вы оставляете присоединение, когда ничего не читаете из v1, а также группируете без агрегирования.
2. обновлено! У меня есть условие where в v1