sequelize子查询不生效

    userOrganizationModel.hasMany(organizationModel, {
        foreignKey: 'organization_id'
    });
    // 此include未生效
    const include = [{
        model: organizationModel,
        required: false,
        where: {
            name: {
                $like: 'ext-%'
            }
        }
    }];

    await userOrganizationModel.findAll({
        include: include // 此include未生效
    })
    
    想实现的原始sql:
    // mysql原生语句select * from user_organization where organization_id in(select id from organization where name like 'ext-%')
阅读 6.1k
1 个回答

include好像是嵌套预加载样,我猜是这样写,没有实践过,但是好像可以通过app.Sequelize.literal()直接在查询中写sql语句

userOrganizationModel.findAll({
    include: [ {
        model: organizationModel,
        as: 'Organizations',
        attributes: ['id'],
        where: { name: { $like: 'ext-%' }}
    } ],
    where: { organization_id: { $in: Organizations.map(o => o.id) } }
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题