使用查询生成器进行查询以在 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();
我希望这能奏效。
我是查询生成器的新手。我需要申请一个查询。我在 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();
我希望这能奏效。