首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用TypeORM的QueryBuilder构建这个内部连接查询?

如何使用TypeORM的QueryBuilder构建这个内部连接查询?
EN

Stack Overflow用户
提问于 2022-04-29 17:47:05
回答 1查看 374关注 0票数 0

我正在努力学习TypeORM,我以前还没有真正使用过ORM。我在网上很难理解文档和其他例子。

我只想使用TypeORM QueryBuilder生成以下查询。

代码语言:javascript
复制
select first_name, last_name
from users u
inner join company_relations cr
on u.id = cr.id

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2022-04-29 23:16:01

您需要处理两个元素,实体和查询。

例如,您的实体应该大致如下所示

UserEntity.ts

代码语言:javascript
复制
@Entity('users')
export class UsersEntity {

    // other attributes

    @Column({ name: 'first_name', type: 'varchar' })
    firstName: string;

    @Column({ name: 'last_name', type: 'varchar' })
    lastName: string;

    @OneToMany(
      () => CompanyRelationsEntity,
      (companyRelationsEntity: CompanyRelationsEntity) => companyRelationsEntity.userId,
    )
    companyRelations: CompanyRelationEntity[];
}

CompanyRelationEntity.ts

代码语言:javascript
复制
@Entity('company_relations')
export class CompanyRelationEntity {

    // Other attributes

    @ManyToOne(
      () => UsersEntity,
      (userEntity: UsersEntity) => usersEntity.companyRelations,
    )
    @JoinColumn({ name: 'user_id', referencedColumnName: 'id' })
    user: UserEntity;
}

然后,您可以执行类似于

代码语言:javascript
复制
await this.repository
    .createQueryBuilder('u')
    .select(['u.firstName', 'u.lastName'])
    .innerJoin('m.companyRelations', 'cr')
    .getOne();

您可以在它的官方链接中阅读更多有关这方面的内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72061904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档