鍍金池/ 問答/數(shù)據(jù)庫  HTML/ sequelize子查詢不生效

sequelize子查詢不生效

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

    await userOrganizationModel.findAll({
        include: include // 此include未生效
    })
    
    想實(shí)現(xiàn)的原始sql:
    // mysql原生語句select * from user_organization where organization_id in(select id from organization where name like 'ext-%')
回答
編輯回答
清夢(mèng)

include好像是嵌套預(yù)加載樣,我猜是這樣寫,沒有實(shí)踐過,但是好像可以通過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) } }
})
2017年12月11日 06:39