![](/img/trans.png)
[英]PostgreSQL - select aggregated column from joined table and use it to sum
[英]TypeOrm/PostgreSQL createQueryBuilder: select column from joined table
我只想 select 我要加入的表中的一列。 separator
有一個facility
,一個facility
有一個customer
,我想通過提供一個separatorId
來 select customer.id
。
下面是我嘗試過的,但這會返回一個Separator
。
return await this.separatorRepository
.createQueryBuilder('separator')
.select(['customer.companyId'])
.innerJoin('separator.facility', 'facility')
.innerJoin('facility.customer', 'customer')
.where('separator.id = :separatorId', { separatorId })
.getOne();
如何更改此查詢以獲取customer.id
?
我想您的連接表沒有被選中,因為您使用的innerJoin
方法而不是innerJoinAndSelect
。 此外,由於getOne
返回具有您的實體類型(在您的情況下為Separator
)的對象,因此您需要確保正確指定Separator
、 Facility
和Customer
之間的關系。
實體:
@Entity()
export class Customer {
@PrimaryColumn()
id: number;
}
@Entity()
export class Facility {
@PrimaryColumn()
id: number;
@OneToOne(() => Customer)
@JoinColumn()
customer: Customer;
}
@Entity()
export class Separator {
@PrimaryColumn()
id: number;
@OneToOne(() => Facility)
@JoinColumn()
facility: Facility;
}
詢問:
return await this.separatorRepository
.createQueryBuilder('separator')
.innerJoinAndSelect('separator.facility', 'facility')
.innerJoinAndSelect('facility.customer', 'customer')
.where('separator.id = :separatorId', { separatorId })
.getOne();
該查詢為您生成帶有連接實體的Separator
實例,因此您可以從那里獲取您的customer.id
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.