使用查询生成器进行查询以在 typeORM 中使用条件进行内部联接和 select

Query using query builder to make an inner join and select with condition in typeORM

我是查询生成器的新手。我需要申请一个查询。我在 mysql 上完成了它并且工作正常。但是我无法在查询中创建where条件。

这是我的 SQL 查询:

select users_roles.user_id 
from users_roles 
inner join roles on roles.id = users_roles.role_id  
where roles.role = 'ADMIN_ROLE' 
   or roles.role = 'SUPER_ADMIN_ROLE'

我尝试使用查询生成器执行此操作,但没有使用任何 where 条件。如何根据 mysql 代码进行过滤?我在这里添加我的查询构建器查询:

const query = this.userRoleRepository.createQueryBuilder('usersRoles');

      const users = await query
        .innerJoinAndSelect('usersRoles.user', 'user')
        .getMany();

实际上它返回的是整个用户列表。但我只需要指定两种类型的用户。那应该用where条件过滤。在 mysql 查询中。

const users = await query
    .select(userRoles.user_id)
    .innerJoin('userRoles.roles', 'roles', 'roles.id = users_roles.role_id')
    .where("roles.role = :adminRole OR roles.role =: superRole", { adminRole: 'ADMIN_ROLE', superRole: 'SUPER_ADMIN_ROLE' })
    .getMany();

我希望这能奏效。