我有3个型号,
用户,课程,CourseRole
。他们通过
建立了多对多关系CourseUser
我想知道用户在特定课程中的角色,我正在使用此原始查询:
const queryRoles = `SELECT "roleName" FROM course_roles cr
JOIN course_users cu ON cr.id = cu."roleId"
WHERE "userId"=${tokenData.id} AND "courseId"=${courseId}`;
const role = await db.query(queryRoles, { type: db.QueryTypes.SELECT });
但是我想使用sequelize,我尝试这样做:
const role = await CourseRole.findOne({
attributes: ["roleName"],
include: [{ model: CourseUser, where: { userId: tokenData.id } }]
});
但是我得到一个错误:
SequelizeEagerLoadingError:课程用户未与 course_roles!
User.belongsToMany(Course, {
as: 'courses',
through: CourseUser,
foreignKey: 'userId'
});
Course.belongsToMany(User, {
as: 'organization_users',
through: CourseUser,
foreignKey: 'courseId'
});
CourseRole.belongsToMany(User, {
as: 'organization_users',
through: CourseUser,
foreignKey: 'roleId'
});
User.belongsToMany(CourseRole, {
as: 'course_roles',
through: CourseUser,
foreignKey: 'userId'
});
那么Sequelize有什么办法吗?谢谢