对 Postgres 表的缺失 FROM 子句条目进行序列化

EJ_*_*gan 15 database postgresql node.js sequelize.js

我试图通过包含的 DataPoints 数据所在位置loc和 sortOrder 所在位置来过滤我的 DataRow 对象2。以下是我正在尝试的查询。我不断收到以下错误。

SequelizeDatabaseError: missing FROM-clause entry for table "dataPoints"

我尝试过设置required: trueduplicating: false没有运气。我在 DataRows 包括和 DataPoints 中尝试了这些。

    attributes: ['id', 'name', 'labId'],
    include: [{
      as: 'dataColumns',
      model: DataColumn,
      attributes: ['id', 'name', 'sortOrder', 'dataType', 'isDate', 'isLocation'],
    }, {
      as: 'dataSets',
      model: Study,
      attributes: ['id', 'name'],
    }, {
      as: 'dataRows',
      model: DataRow,
      attributes: ['id'],
      where: {
        [Op.and]: [
          {
            '$dataPoints.data$': 'loc',
          },
          {
            '$dataPoints.sortOrder$': 2,
          },
        ],
      },
      include: [{
        as: 'dataPoints',
        model: DataPoint,
        attributes: ['id', 'sortOrder', 'data'],
      }],
    },],
    order: [
      [{ model: DataColumn, as: 'dataColumns' }, 'sortOrder', 'ASC'],
      [{ model: DataRow, as: 'dataRows' }, { model: DataPoint, as: 'dataPoints' }, 'sortOrder', 'ASC'],
    ],
  }
Run Code Online (Sandbox Code Playgroud)

小智 14

尝试required: true一下duplicating: false您想要包含的所有模型。这样就可以解决问题了。为我工作。


Abd*_*mon 8

如果您像我一样在主 where中包含的表的列上使用了 where 条件并收到此错误,只需在主查询的选项中使用它即可。

{ subQuery: false }
Run Code Online (Sandbox Code Playgroud)