Typeorm给我QueryFailedError:列引用“ id”不明确

问题描述

这是我要提出的查询:

const updatedUser = await queryRunner.manager
    .getRepository(UserEntity)
    .createQueryBuilder('user')
    .leftJoinAndSelect('user.categories','cats')
    .where('id = :userId',{ userId })
    .getOne();

这是由typeorm生成的查询:

SELECT "user"."id"               AS "user_id","user"."first_name"       AS "user_first_name","user"."last_name"        AS "user_last_name","user"."phone"            AS "user_phone","user"."password"         AS "user_password","user"."password_hint"    AS "user_password_hint","user"."recovery_email"   AS "user_recovery_email","user"."created"          AS "user_created","user"."username"         AS "user_username","user"."profile_pic"      AS "user_profile_pic","user"."is2fa"            AS "user_is2FA","user"."refresh_token"    AS "user_refresh_token","user"."profile_email"    AS "user_profile_email","user"."subscriptionid"   AS "user_subscriptionId","cats"."id"               AS "cats_id","cats"."template_id"      AS "cats_template_id","cats"."name"             AS "cats_name","cats"."entry_count"      AS "cats_entry_count","cats"."is_base_template" AS "cats_is_base_template","cats"."can_rename"       AS "cats_can_rename","cats"."can_delete"       AS "cats_can_delete","cats"."userid"           AS "cats_userId","cats"."position"         AS "cats_position","cats"."icon_path"        AS "cats_icon_path","cats"."init_name"        AS "cats_init_name","cats"."isfortasks"       AS "cats_isForTasks","cats"."is_locked_by"     AS "cats_is_locked_by","cats"."is_locked"        AS "cats_is_locked","cats"."password"         AS "cats_password","cats"."state"            AS "cats_state","cats"."password_hint"    AS "cats_password_hint","cats"."parentcategoryid" AS "cats_parentCategoryId" 
FROM   "user" "user" 
       LEFT JOIN "category" "cats" 
              ON "cats"."userid" = "user"."id" 
WHERE  id = $1 

如果我删除leftJoinAndSelect,则不会产生该错误,但是我需要此联接。

查询出了什么问题?

META:

我正在使用的DBMS是PostgreSQL v.1.2.3。

解决方法

好吧,正如您所看到的,有 <div class="container"> <div class="main"> Lorem ipsum dolor sit amet consectetur adipisicing elit. Ullam deleniti voluptatem minima tenetur,quidem consequatur velit deserunt nemo sint,numquam aspernatur molestias eum aperiam. Obcaecati impedit rerum itaque,adipisci laudantium totam ipsum dolorum. Vel unde id sapiente! Consequatur velit,voluptatibus culpa,vel quis tempore repellendus eum,tenetur dolor commodi quos. consequatur velit deserunt nemo sint,tenetur dolor commodi quos. </div> <div class="side"> Lorem ipsum dolor sit amet consectetur adipisicing elit. Quam,ipsum. </div> </div>user.id可用-您甚至可以同时选择两者。但是在cats.id子句中,您没有说出您是指哪个WHERE。将id更改为'id = :userId',它应该可以工作。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...