|
我们说有两个表,即用户和用户角色。用户和用户角色之间的关系是一对多的。Sequelize模型如下:
1 w2 ^4 {2 h/ k$ lconst user = sequelize.define( 'user{ id: { type: DataTypes.BIGINT, allowNull: false, primaryKey: true, autoIncrement: true, field: 'id userName: { type: DataTypes.STRING(200) allowNull: false, field: 'username password: { type: DataTypes.STRING(200) allowNull: false, field: 'password }tableName: 'user` };用户角色续集模型如下-
9 i) C7 E5 e3 q5 n- dconst userRole = sequelize.define( 'userRole{ id: { type: DataTypes.BIGINT, allowNull: false, primaryKey: true, autoIncrement: true, field: 'id userId: { type: DataTypes.BIGINT, allowNull: false, primaryKey: true, autoIncrement: true, field: 'user_id password: { type: DataTypes.STRING(200) allowNull: false, field: 'password }tableName: 'userRole` };Sequelize关联定义如下:
4 K9 F/ k# {8 }3 T- B% Puser.hasMany(models.userRole,{ foreignKey: 'user_id',as: 'roles' });userRole.belongsTo(models.user,{ foreignKey: 'user_id',as: 'user' });我想使用生成以下查询# D a9 R5 O, s5 y- Z
Sequelize -SELECT * FROM USER INNER JOIN (SELECT user_role.user_id, role FROM user_role INNER JOIN USER tu ON tu.id = user_role.user_id GROUP BY user_id ORDER BY role) AS roles ON USER.id = roles.user_id;我在开发一个API,该API前端网格将用于显示用户信息。用户角色表的角色属性具有搜索功能。如果特定用户的任何角色都匹配,我希望获得所有与用户相关的角色的用户记录。
. V5 Z: k0 r3 W" j1 Z- p5 F : H2 h; O: n+ d ~; p
解决方案: |
|