У меня есть проблема, на которой я застрял, но безрезультатно - по внешнему виду похож на Где условие для объединенной таблицы в 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$ }
}]
}]
});