我有一个相对复杂的 Sequelize 查询,它导致“错误:ER_BAD_FIELD_ERROR:‘where 子句’中的未知列‘EventImage.EventId’”。我可以清楚地看到生成的 SQL 中的问题,但我不知道如何解决它。
该错误是准确的,因为在子查询中生成的 WHERE 子句引用了未包含在子查询中的列。据我所知,Sequelize 正在生成子查询作为实现行限制的一种方式。
我正在使用 sequelize@2.0.0-dev11、MySQL 5.5.35-0ubuntu0.13.10.2 和 Node v0.10.21。
这是基本代码:
var orm = require('../model');
var i = orm.Image;
i.findAll({
where: where,
offset: offset,
limit: rows,
order: orderby,
include: [{
model: orm.User,
as: 'User'
},
{
model: orm.Event,
as: 'Events'
},
{
model: orm.Comment,
as: 'Comments'
},
{
model: orm.Favorite,
as: 'Favorites'
}
]
})
Run Code Online (Sandbox Code Playgroud)
where = "'Image'.'Category'='gallery' AND 'EventImage'.'EventId' in (1,2)"
offset = 0
rows = 12
orderby = "Image.createdAt DESC"
Sequelize 使用以下选项初始化: …