尝试使用sequelize从DB获取特定的最大值。我有这个代码,它没有包含部分,但我需要根据地址过滤数据。我这样试试:
Carrier.max('code', {
where: {
equipmentTypeID: id,
id: {
$not: carrierID
}
},
include: [{
model: Address,
as: 'address',
where: {
district: city.name
},
}]
})
承运人模型:
Carrier.belongsTo(MODEL('database/address').instance, {
foreignKey: 'addressID',
onDelete: 'SET NULL'
});
但是我收到了这个错误:
Unhandled rejection SequelizeBaseError: column "address.id" must
appear in the GROUP BY clause or be used in an aggregate function
我无法弄清楚如何使用address.id添加GROUP BY子句。
EDITED
这是我的实际解决方案:
Carrier.max('code', {
where: {
equipmentTypeID: id,
id: {
$not: carrierID
}
},
include: [{
model: Address,
as: 'address',
where: {
district: city.name
},
}],
group: 'address.id'
})
但它没有返回正确的行(例如它返回'yyyy',但很好的答案是'zzzz')。
列'carrier.code'是文本的类型,但它也不适用于'carrier.id'。有没有办法用这个特定的过滤器制作Carrier.findAll()然后在结果上制作max()函数?或者还有其他方法可以从特定行获取最大列值?