Sequelize Include、join、limit 关联表

Sequelize Include, join, limit associated tables

我对 sequelize 查询有疑问,我认为他们应该给出相同的结果,但他们没有。有人可以解释一下这种情况吗?
第一种情况:

getLatestStation = (stationId) => {
    return models.MonitoringDataInfo.findAll({
      where: {stationId :stationId},
      attributes: ['id', 'stationId', 'sentAt'],
      order : [['sentAt', 'DESC']],
      limit: 1,
      include : [{model: models.MonitoringData, attributes: ['idData', 'indicator', 'value', 'unit', 'sensorStatus']}]
    })
  }


第一个结果:


第一个查询:
SELECT [MonitoringDataInfo].*, [MonitoringData].[id] AS [MonitoringData.id], [MonitoringData].[idData] AS [MonitoringData.idData], [MonitoringData].[指标] ] AS [MonitoringData.indicator], [MonitoringData].[value] AS [MonitoringData.value], [MonitoringData].[unit] AS [MonitoringData.unit], [MonitoringData].[sensorStatus] AS [MonitoringData.sensorStatus] FROM (SELECT [MonitoringDataInfo].[id], [MonitoringDataInfo].[stationId], [MonitoringDataInfo].[sentAt] FROM [monitoring_data_info] AS [MonitoringDataInfo] WHERE [MonitoringDataInfo].[stationId] = N'mkkneh3uBrAkw9hepMlF' ORDER BY [MonitoringDataInfo].[sentAt] DESC OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY) AS [MonitoringDataInfo] LEFT OUTER JOIN [monitoring_data] AS [MonitoringData] ON [MonitoringDataInfo].[id] = [MonitoringData].[idData] ORDER BY [MonitoringDataInfo].[sentAt] DESC;

第二种情况:

getLatestStation = (stationId) => {
    return models.Station.findAll({
      attributes: ['id', 'name', 'address', 'envIndex'],
      where : {
        id : stationId,
        publicStatus : 1
      },
      include : [{
        model: models.MonitoringDataInfo, 
        limit: 1,
        // where : {
        //   stationId: stationId
        // },
        attributes: ['id', 'stationId', 'sentAt'],
        order : [['sentAt', 'DESC']],
        limit : 1,
        include : [{model: models.MonitoringData, attributes: ['idData', 'indicator', 'value', 'unit', 'sensorStatus']}]
      }]
    })
  } 


第二个结果:

第二个查询: SELECT [Station].[id], [Station].[name], [Station].[address], [Station].[envIndex] FROM [stations] AS [Station] WHERE [Station].[ id] = N'mkkneh3uBrAkw9hepMlF' AND [Station].[publicStatus] = 1;
SELECT [MonitoringDataInfo].[id], [MonitoringDataInfo].[stationId], [MonitoringDataInfo].[sentAt], [MonitoringData].[id] AS [MonitoringData.id], [MonitoringData].[ idData] AS [MonitoringData.idData], [MonitoringData].[indicator] AS [MonitoringData.indicator], [MonitoringData].[value] AS [MonitoringData.value], [MonitoringData].[unit] ] AS [MonitoringData.unit], [MonitoringData].[sensorStatus] AS [MonitoringData.sensorStatus] FROM [monitoring_data_info] AS [MonitoringDataInfo] LEFT OUTER JOIN [monitoring_data] AS [MonitoringData ] 在 [MonitoringDataInfo].[id] = [MonitoringData].[idData] WHERE [MonitoringDataInfo].[stationId] IN (N'mkkneh3uBrAkw9hepMlF') ORDER BY [MonitoringDataInfo].[sentAt] DESC,[MonitoringDataInfo].[id] OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY;

与第二个查询相比,第一个查询不限制来自 MonitoringData 的记录。 尝试在include:

中注明separate:true
include : [{model: models.MonitoringData, separate: true, attributes: ['idData', 'indicator', 'value', 'unit', 'sensorStatus']}]