【问题标题】:Sequelize js not working as expected with Having and Group bySequelize js 无法与 Have 和 Group by 一起按预期工作
【发布时间】:2021-09-06 01:32:36
【问题描述】:

我的 ORM 查询有问题吗?我正在尝试使用 sequelize group 和 having 来过滤超过 30 条记录的预订日期:

SELECT "reservations"."reservationDate" FROM reservations, orders
WHERE "reservations"."orderId" = "orders"."orderId"
AND Orders.confirmed = true
GROUP BY "reservationDate"
HAVING COUNT("reservationDate") >= 30;
    db.Reservations.findAll({
      attributes: ['reservationDate'],
      where: {
        reservationDate: {
          [Sequelize.Op.between]: [fistMonthDay, lastMonthDay],
        },
      },
      include: [{
        model: db.Orders,
        attributes: [],
        where: { confirmed: true }
      }],
      group: ['reservationDate'],
      having: {
        [Sequelize.fn("COUNT", Sequelize.col("reservationId"))]: {
          [Sequelize.Op.gte]: 30,
        }
      }

    })

【问题讨论】:

    标签: node.js postgresql express orm sequelize.js


    【解决方案1】:

    简单的解决方法:

    having: Sequelize.literal(`count("reservation"."reservationId") >= 30`)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-25
      • 1970-01-01
      • 2019-09-04
      相关资源
      最近更新 更多