【问题标题】:I need to transform an SQL arguments into Sequelize我需要将 SQL 参数转换为 Sequelize
【发布时间】:2021-04-30 14:10:36
【问题描述】:

我需要将一个 SQL 参数转换为 Sequelize

SELECT `WeekHours`.`id_weekhours` AS `idWeekhours`, `WeekHours`.`hour`, `WeekHours`.`week_day` AS `weekDay` 
FROM `week_hours` AS `WeekHours` 
LEFT OUTER JOIN `user_schedule` AS `UserSchedule` 
ON `WeekHours`.`id_weekhours` = `UserSchedule`.`id_weekhours` AND `UserSchedule`.`date` = '2021-05-03' 
WHERE `UserSchedule`.`id_weekhours` IS NULL AND `WeekHours`.`week_day` = 'Monday';

我在 sequelize 中创建了这个:

await WeekHours.findAll({
  attributes: ['hour', 'weekDay'],
  where: {
    idWeekhours: {
      [Op.eq]: null
    },
    weekDay,
  },
  include: [{
    attributes: [],
    model: UserSchedule,
    where: {
      date,
    },
    required: false,
  }],
})

但我明白了:

SELECT `WeekHours`.`id_weekhours` AS `idWeekhours`, `WeekHours`.`hour`, `WeekHours`.`week_day` AS `weekDay` 
FROM `week_hours` AS `WeekHours` 
LEFT OUTER JOIN `user_schedule` AS `UserSchedule` ON `WeekHours`.`id_weekhours` = `UserSchedule`.`id_schedule` AND `UserSchedule`.`date` = '2021-05-03' 
WHERE `WeekHours`.`id_weekhours` IS NULL AND `WeekHours`.`week_day` = 'Monday'; 

我遇到的问题是:

错误:

`WHERE `WeekHours`.`id_weekhours

正确:

`WHERE `UserSchedule`.`id_weekhours

错误:

`ON `WeekHours`.`id_weekhours` = `UserSchedule`.`id_schedule

正确:

`ON `WeekHours`.`id_weekhours` = `UserSchedule`.`id_weekhours

【问题讨论】:

    标签: sql node.js sequelize.js


    【解决方案1】:
    const usedHours = await WeekHours.findAll({
          attributes: ['hora'],
          where: {
            '$UserSchedule.id_weekhours$': {
              [Op.eq]: null
            },
            diaSemana,
          },
          include: [{
            attributes: [],
            model: UserSchedule,
            on: {
              id: Sequelize.where(Sequelize.col("WeekHours.id_weekhours"), "=",Sequelize.col("UserSchedule.id_weekhours"))
            },
            where: {
              data,
            },
            required: false,
          }],
        })
    

    【讨论】:

      猜你喜欢
      • 2023-03-15
      • 1970-01-01
      • 2022-09-24
      • 2019-09-14
      • 1970-01-01
      • 1970-01-01
      • 2018-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多