Scala Quill: как писать? Мне нужно использовать ГРУППУ ПО ПОРЯДКУ и несколько условий WHERE

#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