我有下表定义
产品表
const Product = sequelize.define('product', {
name: { type: Sequelize.TEXT },
amount: { type: Sequelize.DECIMAL },
category: { type: Sequelize.BIGINT, field: 'categoryId' },
brand: { type: Sequelize.BIGINT, field: 'brandId' },
vendor: { type: Sequelize.BIGINT, field: 'vendorId' },
status: { type: Sequelize.BIGINT, field: 'statusId' },
image: { type: Sequelize.TEXT },
stock: { type: Sequelize.INTEGER },
description: { type: Sequelize.TEXT },
model: { type: Sequelize.TEXT },
code: { type: Sequelize.TEXT },
});
状态表const Statuses = sequelize.define('statuses', {
name: {
type: Sequelize.TEXT
},
});
协会Product.belongsTo(Statuses, { foreignKey: 'statusId', as: 'productStatus'});
当我运行以下内容时:product = await Product.findOne({
where: {
id: req.query.id
},
include: ['productStatus']
})
我得到以下查询:SELECT
"product"."id",
"product"."name",
"product"."amount",
"product"."categoryId" AS "category",
"product"."brandId" AS "brand",
"product"."vendorId" AS "vendor",
"product"."statusId" AS "status",
"product"."image",
"product"."stock",
"product"."description",
"product"."model",
"product"."code",
"product"."createdAt",
"product"."updatedAt",
"product"."statusId",
"product"."categoryId",
"product"."vendorId",
"product"."brandId",
"productStatus"."id" AS "productStatus.id",
"productStatus"."name" AS "productStatus.name",
"productStatus"."createdAt" AS "productStatus.createdAt",
"productStatus"."updatedAt" AS "productStatus.updatedAt",
"productStatus"."status" AS "productStatus.status"
FROM "products" AS "product"
LEFT OUTER JOIN "statuses" AS "productStatus" ON "product"."statusId" = "productStatus"."id"
WHERE "product"."id" = '1'
不知道为什么"productStatus"."status" AS "productStatus.status"
是否存在并导致未知列错误,因为我在状态表中没有该列
最佳答案
User.hasOne(Status, { foreignKey: 'status', as: 'UserStatus'})
表示 Status
具有不正确的 status
列。这就是为什么 Sequelize 知道 Status
模型有 status
列并将其添加到 SQL-query 中。
我想 User
有 status
列而不是 Status
。如果是这样,您只需要像这样更改关联:
User.belongsTo(Status, { foreignKey: 'status', as: 'UserStatus'})
关于node.js - Sequelize : extra column in query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64561697/