全栈OkLin
全栈OkLin
  • 发布:2022-07-25 16:45
  • 更新:2022-07-25 20:49
  • 阅读:380

JQL语法.field不支持select运算吗

分类:uniCloud

需求:有文章表、评论表,需要查出所有文章和相对应的评论条数

在SQL里的实现:select article.* , (select count(id) from reviews where reviews.article_id = article.id) as reviewsCount
from article order by article.id

转为JQL的话,是什么写法?
目前.field()只支持sum、avg等简单运算,不支持 (select count(id) from reviews where reviews.article_id = article.id) as reviewsCount 联表查询吗?

2022-07-25 16:45 负责人:DCloud_uniCloud_WYQ 分享
已邀请:
DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

const article = db.collection('article').where({  
  id: '1'  
}).getTemp()  
const review = db.collection('reviews').getTemp()  
const result = await db.collection(article, review).field('size(id.reviews) as reviewsCount').get()
  • 全栈OkLin (作者)

    你这个不满足需求啊,只查询了单个id=1的文章的评论数,而需求是一次性查出所有文章对应的评论数。难道在你这代码上加个for循环?性能太低了

    2022-07-27 11:02

  • DCloud_uniCloud_WYQ

    回复 全栈OkLin: 你把where去了不就是查所有了吗?

    2022-07-27 11:11

  • DCloud_uniCloud_WYQ

    当然还是推荐主表先进性筛选或者分页再进行联表

    2022-07-27 11:12

该问题目前已经被锁定, 无法添加新回复