nestjs - LeftJoinAndMapOne 与 typeorm 中的子查询
问题描述
我是 typeorm 的新手,不知道如何处理。
我需要 leftJoinAndMapOne 和没有关系的子查询(只是想知道这是否可能)。
其他问题是我可以在 leftJoinAndMapOne (嵌套)中使用 leftJoinAndMapOne 吗?
你能帮我解决这个问题吗?
await this.connection
.getRepository(UserInfoEntity)
.createQueryBuilder('user_info')
.leftJoinAndMapOne(
'user_info.roles',
(qb) => {
return qb.select().from(UserHasOrganizationRoleEntity, 'orgRole');
},
'orgRole',
'orgRole.userId = :userId AND orgRole.organizationId = :organizationId',
{
userId: auth_user.userId,
organizationId: auth_user.organizationId,
},
)
.where('user_info.id = :id', { id })
.getRawMany();
错误:
QueryFailedError:缺少表“orgrole”的 FROM 子句条目
在 PostgresQueryRunner 的新 QueryFailedError (/Volumes/Project/Toptipi-node/node_modules/typeorm/error/QueryFailedError.js:11:28)
。(/Volumes/Project/Toptipi-node/node_modules/typeorm/driver/postgres/PostgresQueryRunner.js:247:31)
在步骤 (/Volumes/Project/Toptipi-node/node_modules/tslib/tslib.js:141:27) 在 Object.throw (/Volumes/Project/Toptipi-node/node_modules/tslib/tslib.js:122:57)在 processTicksAndRejections (internal/process/task_queues.js:93:5) 处被拒绝 (/Volumes/Project/Toptipi-node/node_modules/tslib/tslib.js:113:69) {长度:120,严重性:'错误',代码:“42P01”,详细信息:未定义,提示:未定义,位置:“1192”,内部位置:未定义,内部查询:未定义,其中:未定义,架构:未定义,表:未定义,列:未定义,数据类型:未定义,约束:未定义,文件:'parse_relation.c',行:'3459',例程:'errorMissingRTE',查询:'SELECT "user_info"."id" AS "user_info_id", "user_info"."firstName" AS"user_info_firstName", "user_info"."title" AS "user_info_title", "user_info"."lastName" AS "user_info_lastName", "user_info"."gender" AS "user_info_gender", "user_info"."phoneNumber" AS "user_info_phoneNumber" , "user_info"."organizationId" AS "user_info_organizationId", "user_info"."systemRoleId" AS "user_info_systemRoleId", "user_info"."userId" AS "user_info_userId", "user_info"."address" AS "user_info_address", " user_info"."cityId" AS "user_info_cityId", "user_info"."stateId" AS "user_info_stateId", "user_info"."countryId"AS "user_info_countryId", "user_info"."pincode" AS "user_info_pincode", "user_info"."joiningDate" AS "user_info_joiningDate", "user_info"."image" AS "user_info_image", "user_info"."imagePath" AS " user_info_imagePath", "user_info"."experience" AS "user_info_experience", "user_info"."expFile" AS "user_info_expFile", "user_info"."expFilePath" AS "user_info_expFilePath", "user_info"."createdAt" AS "user_info_createdAt" , "user_info"."updatedAt" AS "user_info_updatedAt", "orgRole".* FROM "user_info" "user_info" LEFT JOIN (SELECT * FROM "user_has_organization_roles" "orgRole") "orgRole" ON orgRole.userId = $1 AND orgRole.organizationId = $2 WHERE "user_info"."id" = $3',参数:['2','1','14']}
解决方案
推荐阅读
- javascript - 更新面板中 JQUERY 数据表中的排序列
- postgresql - 使用官方 postgres 镜像运行 docker 容器,无法访问容器
- sql - 如何使用 tSQL 根据条件定义 EventStop 时间戳?
- spring-boot - 我实现了具有管理员和客户的 api 列表的客户服务
- git - Github 部署密钥允许我克隆多个私有存储库
- java - 如何在同一个 Android 应用程序中使用 Navigation Drawer 和 Bottom Navigation
- snakemake - snakemake中的“只能将输入文件指定为函数”
- sql-server - Schema Compare 和 SqlPackage 150 区分大小写问题
- python - 如何修复 Debian-RaspberryPi3 上损坏的 apt-listchanges?
- shell - Shell 运行 StreamSets 管道