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

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

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

  • 标题 / 粗斜体
  • 代码片段
  • 超链接 / 图片 / 视频
  • 列表 / 引用

文章内容较多时,可以用标题分段 :

## 大标题 
### 小标题

斜体 / 粗体 :

**粗体** 
*斜体*
***粗斜体***

代码片段 :

``` javascript
代码片段
```

超链接 :

[链接文字](链接地址) 例: [百度](http://www.baidu.com)

图片 :

![图片说明](图片地址) 例: ![百度logo](http://www.baidu.com/img/bdlogo.gif)

视频 :

!![视频说明](视频地址) 例: !![优酷视频](http://youku.com)

有序列表 :

1. 123
2. 123
3. 123

无序列表 :

- 123
- 123
- 123

引用 : ( 双回车后结束引用 )

> 引用内容
引用内容
引用内容