Sequelize 如何编写子查询

时间:2021-01-06 17:56:43

标签: node.js postgresql sequelize.js

大家好,我正在尝试在 sequelize 中创建键集分页

目前我一直在研究上一个和下一个按钮逻辑,以获取列表中的上一个和下一个帖子。

我一直在使用这两篇​​文章作为参考:

https://ask.use-the-index-luke.com/questions/205/how-to-query-for-previous-page-with-keyset-pagination pagination and filtering on a very large table in postgresql (keyset pagination?)

我有一个包含以下字段的工作模型:

 Job.init({
    title: DataTypes.STRING,
    company: DataTypes.STRING,
    description: DataTypes.TEXT,
    excerpt: DataTypes.TEXT,
    createdAt: DataTypes.DATE,
  })

我写了一个查询,当点击 next button 时, 我从客户端传递日期,然后获取接下来的 3 个元素

  const page = new Date(); // this is date that is passed as query param
  data = await Job.findAll({
                attributes: ['id', 'title', 'company', 'description', 'createdAt'],
                where: {
                    'createdAt': {
                        [Op.gt]: page,
                    },
                },
                limit: 3,
                order: [['createdAt', 'ASC']]
            });

但是我知道 previous button 有问题,我正在尝试使用子查询执行以下查询:

const page = new Date();
SELECT id, title
FROM (
  SELECT id, title
  FROM jobs
  WHERE createdAt < page
  ORDER BY createdAt DESC
  LIMIT 3
) AS t
ORDER BY createdAt ASC;

但我总是收到语法错误

感谢任何帮助:)

0 个答案:

没有答案
相关问题