我是新的查询生成器。我需要应用一个查询。我在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代码过滤?这里我添加我的查询生成器query:
const query = this.userRoleRepository.createQueryBuilder('usersRoles');
const users = await query
.innerJoinAndSelect('usersRoles.user', 'user')
.getMany();
实际上它返回了整个用户列表。但是我只需要指定两种类型的用户。应该用where条件进行过滤。
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();
我希望这有用。