如何使用sequelize从DB获得最大价值?

时间:2017-04-26 18:26:06

标签: sequelize.js

尝试使用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()函数?或者还有其他方法可以从特定行获取最大列值?

0 个答案:

没有答案