I have 4 tables "User", "Teacher", "Address", "Subjects" the User table have connection to Teacher table (userId field) and the Teacher table have connection to "Address", and "Subjects" (teacherId)
what I want is to map all users that has a data of teacher, address and subjects, my problem is I cant connect the address and subjects table to users
this is my current code
async getUsersTeacherInfo(){
let user = await Database.getConnection().models.User
let teacher = await Database.getConnection().models.Teacher
let address = await Database.getConnection().models.Address
let subjects = await Database.getConnection().models.Subjects
user.hasOne(teacher, { foreignKey: 'userId', sourceKey: '_id' })
user.belongsTo(address, { foreignKey: 'teacherId', sourceKey: '_id' })
user.belongsTo(subjects, { foreignKey: 'teacherId', sourceKey: '_id' })
user = await Database.getConnection().models.User.findAll({
attributes:[....,],
include:[
{ model: Teacher, attributes: ['status', 'Teacher','_id'] },
{ model: Address, attributes: [....,], paranoid: false, required: false},
{ model: Subjects, attributes: [....,], paranoid: false, required: false},
]
})
}
I've tried also this
async getUsersTeacherInfo(){
let user = await Database.getConnection().models.User
let teacher = await Database.getConnection().models.Teacher
let address = await Database.getConnection().models.Address
let subjects = await Database.getConnection().models.Subjects
user.hasOne(teacher, { foreignKey: 'userId', sourceKey: '_id' })
user.belongsTo(address, { foreignKey: 'teacherId', sourceKey: '_id' })
user.belongsTo(subjects, { foreignKey: 'teacherId', sourceKey: '_id' })
user = await Database.getConnection().models.User.findAll({
attributes:[....,],
include:[
{ model: Teacher, attributes: ['status', 'Teacher','_id'],
include:[
{ model: Address, attributes: [....,], paranoid: false, required: false},
{ model: Subjects, attributes: [....,], paranoid: false, required: false},
]}
]
})
}