МОДЕЛЬ
product.js
module.exports = function(sequelize, DataTypes) {
var Product = sequelize.define(
"Product",
{
id: {
type: DataTypes.INTEGER(10).UNSIGNED,
allowNull: false,
primaryKey: true,
autoIncrement: true,
},
title: {
type: DataTypes.STRING(80),
allowNull: true,
},
},
{
tableName: "product",
},
);
Product.associate = function(models) {
Product.hasMany(models.ProductPrice, { foreignKey: "product_id" });
};
return Product;
};
продакт-price.js
module.exports = function(sequelize, DataTypes) {
var ProductPrice = sequelize.define(
"ProductPrice",
{
id: {
type: DataTypes.INTEGER(10).UNSIGNED,
allowNull: false,
primaryKey: true,
},
product_id: {
type: DataTypes.INTEGER(10).UNSIGNED,
allowNull: false,
primaryKey: true,
},
price: {
type: DataTypes.INTEGER(11),
allowNull: true,
}
},
{
tableName: "product_price",
},
);
ProductPrice.associate = function(models) {
ProductPrice.belongsTo(models.Product, { foreignKey: "product_id" });
};
return ProductPrice;
};
Я пытаюсь получить последнюю цену из таблицы ProductPrice
, используя два вида заказа.
- Порядок сопоставления возвращенных цен на продукт (один продукт
have many
цены) - сортировка по убыванию В id
для получения последней цены, с limit:1
.
- Затем повторный заказ нескольких товаров по цене
Я пытаюсь запросить самую последнюю цену и затем заказать несколько продуктов в порядке возрастания или убывания.
Код, выдающий ошибку
models.Product.findAndCountAll({
//THIS LINE PRODUCES ERROR
order: [[models.ProductPrice, "price", "DESC"]],
include: [
//BRINGS THE CORRECT LATEST PRICE
{ model: models.ProductPrice, order: [["id", "DESC"]], limit:1 },
]
})
.then(data=>{
res.json({data.rows})
}
Error
SequelizeDatabaseError: Неизвестный столбец «ProductPrices.price» в порядке
пункт '
Примечание: игнорируйте, что я использую findAndCountAll
- разве в этом проблема?