Sequalize:在加载关联时,一起使用order和limit

我有一个与主表中的主键对应的多个列的事务表。 基本上简单的一对一的关系。

我正在使用限制页面通过可能是一个万亿交易。 当使用顺序并加载findAll函数中的所有关系时,生成的查询将为LIMIT使用的FROM子句生成一个子查询。 另一方面,ORDER应用于外部查询。

这不提供所需的结果,因为订单不适用于整个数据集,而是应用于子查询返回的集合。

有没有办法,我可以申请的子查询顺序。

我正在使用Sequelize 1.7.9

db.Transaction.findAll({ order: '`transactions`.`some_date` DESC', limit: 10, offset: 10, include: [{ model: db.Master1, attributes:['name'], include: [{ model: db.Master2, attributes:['name'] }] }, { model: db.Master3, include: [{ model: db.Master4, attributes: ['name'] }] }, { model: db.Master5, attributes: ['name'], where: { id: '12345' } }] }) 

生成表单的SQL

 SELECT `transactions`.*, `master1`.`name` AS `master1.name`, `master1.master2`.`name` AS `master1.master2.name`, `master3`.`name` AS `master3.name`, `master3.master4`.`name` AS `master3.master4.name` FROM (SELECT `transactions`.*, `master5`.`id` AS `master5.id` FROM `transactions` INNER JOIN `master5` AS `master5` ON `master5`.`id` = `transactions`.`session_id` AND `master5`.`id`='12345' LIMIT 10, 10) AS `transactions` LEFT OUTER JOIN `master1s` AS `master1` ON `master1`.`id` = `transactions`.`id` LEFT OUTER JOIN `master2s` AS `master1.master2` ON `master1.master2`.`id` = `master1`.`id_fk` LEFT OUTER JOIN `master3s` AS `master3` ON `master3`.`id` = `transactions`.`master3_id` LEFT OUTER JOIN `master4s` AS `master3.master4` ON `master3.master4`.`id` = `master3`.`master4_id` ORDER BY `transactions`.`some_date` DESC; 

订单可以以某种方式转移到子查询中吗?

 SELECT `transactions`.*, `master1`.`name` AS `master1.name`, `master1.master2`.`name` AS `master1.master2.name`, `master3`.`name` AS `master3.name`, `master3.master4`.`name` AS `master3.master4.name` FROM (SELECT `transactions`.*, `master5`.`id` AS `master5.id` FROM `transactions` INNER JOIN `master5` AS `master5` ON `master5`.`id` = `transactions`.`session_id` AND `master5`.`id`='12345' ORDER BY `transactions`.`some_date` DESC LIMIT 10, 10) AS `transactions` LEFT OUTER JOIN `master1s` AS `master1` ON `master1`.`id` = `transactions`.`id` LEFT OUTER JOIN `master2s` AS `master1.master2` ON `master1.master2`.`id` = `master1`.`id_fk` LEFT OUTER JOIN `master3s` AS `master3` ON `master3`.`id` = `transactions`.`master3_id` LEFT OUTER JOIN `master4s` AS `master3.master4` ON `master3.master4`.`id` = `master3`.`master4_id`;