小编sar*_*rme的帖子

使用“限制”和“包含”选项时,Sequelize 中出现“未知列”错误

我有一个相对复杂的 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 使用以下选项初始化: …

mysql node.js sequelize.js

6
推荐指数
1
解决办法
2187
查看次数

标签 统计

mysql ×1

node.js ×1

sequelize.js ×1