LeftJoinAndMapOne с подзапросом в typeorm

#nestjs #typeorm

#nestjs #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();
 

Ошибка:

Ошибка запроса: отсутствует запись в предложении для таблицы «orgrole»

при новой ошибке запроса (/Volumes/Project/Toptipi-node/node_modules/typeorm/error/QueryFailedError.js:11:28)
в PostgresQueryRunner. (/Volumes/Project/Toptipi-node/node_modules/typeorm/driver/postgres/PostgresQueryRunner.js:247:31)
на шаге (/Volumes/Project/Toptipi-node/node_modules/tslib.js:141:27) в Object.throw (/Volumes/Project/Toptipi-node/node_modules/tslib/tslib.js:122:57) при отклонении (/Volumes/Project/Toptipi-node/node_modules/tslib/tslib.js:113:69) в processTicksAndRejections (внутренние/process/task_queues.js:93:5) { длина: 120, серьезность: ‘ОШИБКА’, код: ’42P01′, деталь: не определено, подсказка: не определено, позиция: ‘1192’, Внутренняя позиция: не определена, Внутренний запрос: не определен, где: не определено, схема: не определена, таблица:не определено, столбец: не определен, Тип данных: не определен, ограничение: не определено, файл: ‘parse_relation.c’, строка: ‘3459’, процедура: ‘Ошибка ошибки’, запрос: ‘ВЫБЕРИТЕ «user_info».»id» КАК «user_info_id», «user_info».»FirstName» КАК «user_info_firstName», «user_info».»title» КАК «user_info_title», «user_info».»LastName» КАК «user_info_lastName», «user_info».»gender» КАК «user_info_gender», «user_info».»PhoneNumber» КАК «user_info_phoneNumber», «user_info».»organizationId» КАК «user_info_organizationId», «user_info». «systemRoleId» КАК «user_info_systemRoleId», «user_info».»userId» КАК «user_info_userId», «user_info».»address» КАК » user_info_address», «user_info».»CityId» КАК «user_info_cityId», «user_info».»StateID» КАК «user_info_stateId», «user_info».»country_id» КАК «user_info_countryId», «user_info».»pincode» КАК «user_info_pincode», «user_info».»joiningDate» КАК » user_info_joiningDate», «user_info».»image» КАК «user_info_image», «user_info».»ImagePath» КАК «user_info_imagePath», «user_info».»experience» КАК «user_info_experience», «user_info».»expFile» КАК «user_info_expFile», «user_info».»expFilePath» КАК «user_info_expFilePath», » user_info».»createdAt» КАК «user_info_createdAt», «user_info».»updatedAt» КАК «user_info_updatedAt», «orgRole».* ИЗ «user_info» «user_info» ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБЕРИТЕ * ИЗ «user_has_organization_roles» «orgRole») «orgRole» НА orgRole.userId = $ 1 И orgRole.organizationId = $ 2, ГДЕ «user_info».»id» = $3’, параметры: [‘2’, ‘1’, ’14’ ] }