【发布时间】:2019-11-04 00:06:23
【问题描述】:
我遇到了一个问题,我一直坚持,但无济于事 - 在本质上与 Where condition for joined table in Sequelize ORM 相似,除了我想查询以前的连接。也许代码会解释我的问题。很高兴提供任何额外的信息。
型号:
A.hasMany(B);
B.belongsTo(A);
B.hasMany(C);
C.belongsTo(B);
这是我希望通过 Sequelize 实现的目标:
SELECT *
FROM `A`AS `A`
LEFT OUTER JOIN `B` AS `B` ON `A`.`id` = `B`.`a_id`
LEFT OUTER JOIN `C` AS `B->C` ON `B`.`id` = `B->C`.`b_id`
AND (`B`.`b_columnName` = `B->C`.`c_columnName`);
这就是我想象的工作方式: (相反,它将创建一个原始查询(2 个原始查询,用于 AB/C),在连接时使用 AND ( `C`.`columnName` = '$B.columnName$'))(第二个参数是一个字符串)。尝试过sequelize.col、sequelize.where(sequelize.col...等。)
A.findOne({
where: { id: myId },
include: [{
model: B,
include: [{
model: C,
where: { $C.c_columnName$: $B.b_columnName$ }
}]
}]
});
【问题讨论】:
标签: javascript sql orm sequelize.js