Sequelize.js 如何使用sequelize从DB获得最大值?
尝试使用sequelize从DB获取特定的最大值。我有这个代码,它没有包含部分,但我需要根据地址过滤数据。我试着这样做:Sequelize.js 如何使用sequelize从DB获得最大值?,sequelize.js,Sequelize.js,尝试使用sequelize从DB获取特定的最大值。我有这个代码,它没有包含部分,但我需要根据地址过滤数据。我试着这样做: Carrier.max('code', { where: { equipmentTypeID: id, id: { $not: carrierID } }, include: [{
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子句
已编辑
这是我的实际解决方案:
Carrier.max('code', {
where: {
equipmentTypeID: id,
id: {
$not: carrierID
}
},
include: [{
model: Address,
as: 'address',
where: {
district: city.name
},
}],
group: 'address.id'
})
但它并没有返回正确的行(例如,它返回'yyy',但正确的答案是'zzzz')
列“carrier.code”是文本类型,但它也不适用于“carrier.id”。有没有办法使用这个特定的过滤器生成Carrier.findAll(),然后对结果生成max()函数?或者有其他方法从特定行获取最大列值 承运人和地址之间有什么联系?承运人属于地址,我还编辑了一个问题……然后你应该在下面的句子中加上“as:‘Address’”,因为这就是你在include上的称呼。或者从包含中删除“as”。应该是这样的。我两次都试过了,但结果都一样。承运人和地址之间有什么关联?承运人属于地址,我还编辑了一个问题……然后你应该在“as:‘Address’”子句中添加belong,因为这就是你在include中的称呼。或者从包含中删除“as”。应该是这样的。我两次都试过了,但结果还是一样