Sequelize分页错误 result.count for findAndCountAll is incorrect with include

Sequelize中的findAndCountAll方法,这个方法会查出列表记录,同时返回符合查询列表数据的条数。

// result.count for findAndCountAll is incorrect with include
const order = await this.OrderModel.findAndCountAll({
  include: [this.ctx.model.Customer, this.ctx.model.Test],
  limit: pageSize,
  offset: offset,
  order: [["updatedAt", "desc"]],
});

上面这个sql执行之后的结果count:8,但是我把include条件去掉,count就变成了6。
我order表里面也确实只有6条数据。那count:8是怎么来的呢?
order表与test表是一对多的关系,所以,count:8是将test的数据进行了join,所以导致count结果不准确

解决方法:

const order = await this.OrderModel.findAndCountAll({
  include: [this.ctx.model.Customer, this.ctx.model.Test],
  limit: pageSize,
  offset: offset,
  order: [["updatedAt", "desc"]],
  distinct: true, //去重,返回的 count 把 include 的数量算进去
});
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值