Javascript TypeORM-3个相关表之间的左连接/内部连接问题
所以我有个无法解决的问题,也许你能帮我。 所以:我有三个实体——User、Team、UserTeam,其中包含(userId、teamId、teamRole)。UserTeam是包含复合主键的实体。 如下面代码所示:Javascript TypeORM-3个相关表之间的左连接/内部连接问题,javascript,postgresql,typescript,orm,typeorm,Javascript,Postgresql,Typescript,Orm,Typeorm,所以我有个无法解决的问题,也许你能帮我。 所以:我有三个实体——User、Team、UserTeam,其中包含(userId、teamId、teamRole)。UserTeam是包含复合主键的实体。 如下面代码所示: @Index(["teamId", "userId"], { unique: true }) export class UserTeam { @PrimaryColumn("int") userId = undefined; @PrimaryColumn
@Index(["teamId", "userId"], { unique: true })
export class UserTeam {
@PrimaryColumn("int")
userId = undefined;
@PrimaryColumn("int")
teamId = undefined;
@ManyToOne(type => Team)
team = undefined;
@ManyToOne(type => User)
user = undefined;
@Column({
type: 'enum',
enum: ['CAPITAN', 'PLAYER'],
})
teamRole = "";
}
所以->我想创建一个查询,返回特定团队的所有玩家(用户)。因此,我创建了一个类似eq({team_id:1,players:{userId:1,userId:21,userId:34})的查询(而不是id,我希望有对象作为示例)
getRepository(团队).createQueryBuilder(“团队”)
.leftJoin(“team.users”、“userTeam”)
.leftJoin(“userTeam.user”、“user”)
.getMany()
返回我的查询:
SELECT "team"."id" AS "team_id", "team"."name" AS "team_name", "team"."shortcut" AS "team_shortcut", "team"."nationality" AS "team_nationality", "team"."description" AS "team_description", "team"."imagePath" AS "team_imagePath", "team"."division" AS "team_division" FROM "team" "team" LEFT JOIN "user_team" "userTeam" ON "userTeam"."userId"="team"."id" LEFT JOIN "user" "user" ON "user"."id"="userTeam"."userId"
问题就在这里,因为我有
LEFT JOIN "user_team" "userTeam" ON "userTeam"."userId"="team"."id"```
而不是
userTeam.teamId=team.id
你有什么办法解决我的问题吗?我很乐意得到任何建议和提示。问题解决了。我有相反的关系。我应该有
@OneToMany(type=>UserTeam,UserTeam=>UserTeam.user)
团队=未定义;
@OneToMany(类型=>UserTeam,UserTeam=>UserTeam.team)
用户=未定义;
LEFT JOIN "user_team" "userTeam" ON "userTeam"."userId"="team"."id"```
userTeam.teamId=team.id