1 回答
TA贡献1813条经验 获得超2个赞
使用不开箱即用的联接表列的子句可以包装在 $中。
为了获取涉及嵌套列的顶级 WHERE 子句,Sequelize 提供了一种引用嵌套列的方法:“$nested.column$”语法。
例如,它可用于将 where 条件从包含的模型从 ON 条件移动到顶级 WHERE 子句。
User.findAll({
where: {
'$Instruments.size$': { [Op.ne]: 'small' }
},
include: [{
model: Tool,
as: 'Instruments'
}]
});
在 SQL 中生成:
SELECT
`user`.`id`,
`user`.`name`,
`Instruments`.`id` AS `Instruments.id`,
`Instruments`.`name` AS `Instruments.name`,
`Instruments`.`size` AS `Instruments.size`,
`Instruments`.`userId` AS `Instruments.userId`
FROM `users` AS `user`
LEFT OUTER JOIN `tools` AS `Instruments` ON
`user`.`id` = `Instruments`.`userId`
WHERE `Instruments`.`size` != 'small';
有关文档,您可以在此处阅读:https://sequelize.org/master/manual/eager-loading.html
添加回答
举报