Javascript 无法使用sequelize和mysql根据包含的模型属性筛选数据
我有这样一种方法:Javascript 无法使用sequelize和mysql根据包含的模型属性筛选数据,javascript,mysql,node.js,database,sequelize.js,Javascript,Mysql,Node.js,Database,Sequelize.js,我有这样一种方法: const getAllRequest=async(页面、页面大小、顺序)=>{ 试一试{ const requests=wait Request.findAndCountAll({ 其中={ [点评]:[ sequelize.where(sequelize.col('requests.id'),{[Op.like]:`%${req.query.queryStr}%`}), sequelize.where(sequelize.col('requests.user_id'),{
const getAllRequest=async(页面、页面大小、顺序)=>{
试一试{
const requests=wait Request.findAndCountAll({
其中={
[点评]:[
sequelize.where(sequelize.col('requests.id'),{[Op.like]:`%${req.query.queryStr}%`}),
sequelize.where(sequelize.col('requests.user_id'),{[Op.like]:`%${req.query.queryStr}%`}),
其中(sequelize.col('requests.uuid'),{[Op.like]:`%${req.query.queryStr}%`}),
sequelize.where(sequelize.col('requests.status'),{[Op.like]:`%${req.query.queryStr}%`}),
sequelize.where(sequelize.col('requests.csv_url'),{[Op.like]:`%${req.query.queryStr}%`}),
sequelize.where(sequelize.col('request_url.url'),{[Op.like]:`%${req.query.queryStr}%`}),
]
},
raw:是的,
属性:['id','uuid','userId','status','csvUrl','requestURLs.url','createdAt','updatedAt'],
包括:[{
型号:RequestUrl,
as:“请求URL”,
其中:{type:'brand'},
属性:[]
}],
子查询:false,
偏移量:页面*页面大小,
限制:页面大小,
秩序
});
返回{
现状:200,
信息:“请求列表。”,
请求
}
}捕获(错误){
回绝({
现状:500,
信息:“出了点问题。”,
错误
});
}
}
但如果尝试使用包含的模型属性进行过滤,则不会返回数据。相反,它返回:
错误:“where子句”中的未知列“request\u url.url”
请帮我弄清楚这一点。注意区别:请求URL和作为:“请求URL”注意区别:请求URL和作为:“请求URL”您的
条件应该如下-
where = {
[Op.or]: [
sequelize.where(sequelize.col('requests.id'), { [Op.like]: `%${req.query.queryStr}%` }),
sequelize.where(sequelize.col('requests.user_id'), { [Op.like]: `%${req.query.queryStr}%` }),
sequelize.where(sequelize.col('requests.uuid'), { [Op.like]: `%${req.query.queryStr}%` }),
sequelize.where(sequelize.col('requests.status'), { [Op.like]: `%${req.query.queryStr}%` }),
sequelize.where(sequelize.col('requests.csv_url'), { [Op.like]: `%${req.query.queryStr}%` }),
sequelize.where(sequelize.col('requestURLs.url'), { [Op.like]: `%${req.query.queryStr}%` }),
]
},
我希望有帮助 您的其中
条件应如下所示-
where = {
[Op.or]: [
sequelize.where(sequelize.col('requests.id'), { [Op.like]: `%${req.query.queryStr}%` }),
sequelize.where(sequelize.col('requests.user_id'), { [Op.like]: `%${req.query.queryStr}%` }),
sequelize.where(sequelize.col('requests.uuid'), { [Op.like]: `%${req.query.queryStr}%` }),
sequelize.where(sequelize.col('requests.status'), { [Op.like]: `%${req.query.queryStr}%` }),
sequelize.where(sequelize.col('requests.csv_url'), { [Op.like]: `%${req.query.queryStr}%` }),
sequelize.where(sequelize.col('requestURLs.url'), { [Op.like]: `%${req.query.queryStr}%` }),
]
},
我希望有帮助 这只是一个别名OK,删除带有此字段的条件并显示结果SQL queryyou应该将其指向where条件,即我正在使用别名并仍然使用表名而不是别名引用数据。这只是一个别名OK,删除带有此字段的条件并显示结果SQL queryyou应该将其指向where条件,即我正在使用别名并仍然使用表名而不是别名引用数据。