Я хочу запросить тему с учеником с включенной таблицей соединений.Отношения много ко многим.Я хочу иметь идентификатор объединяющей таблицы (StudentSubject
), но возвращаемый результат будет пустым
Subject.findOne({
where:{id},
include: [
{ model: Student, attribute: ['id', 'name']},
{ model: StudentSubject, attribute: ['id', 'subject', 'student', 'score'], as: "studentSubject"}
]
})
Отношение следующее:
student
Student.belongsToMany(models.Subject, { through: models.StudentSubject, foreignKey: 'student'})
Student.belongsTo(models.StudentSubject, {foreignKey: 'id', targetKey: 'student', as: 'studentSubject'})
субъект
Subject.belongsToMany(models.Student, { through: models.StudentSubject, foreignKey: 'subject'})
Subject.belongsTo(models.StudentSubject, { foreignKey: 'id', targetKey: 'subject', as: 'studentSubject'})
модели таблиц соединений
// it has id by default in the migration file
const StudentSubject = sequelize.define('StudentSubject', {
student: DataTypes.INTEGER,
subject: DataTypes.INTEGER,
score: DataTypes.INTEGER
}
в результате отсутствует идентификатор таблицы соединений, чтоя здесь скучаю?
дополнительный эксперимент
пробовал также с вложенным включением в Student, не работает.у него тоже нет идентификатора
Subject.findOne({
where:{id},
include: [
{ model: Student, attribute: ['id', 'name'], include: [
{ model: StudentSubject, attribute: ['id', 'subject', 'student', 'score'], as: "studentSubject"}
]},
]
})