问一个 Nest TypeORM createQueryBuilder 1:N 查询结果的问题

查看 68|回复 3
作者:feeeff   
现有两张表 store 和 teacher,关系为 1:N ,store 表的数据表为

teacher 的数据表为

我现在想查询 storeId = 1 对应的 teacherName ,我的 createQueryBuilder 代码如下
    const sqlResult =  await this.storeRepository
      .createQueryBuilder('store')
      .innerJoinAndSelect(Teacher, 'teacher', 'store.id = teacher.storeId')
      .select([ 'teacher.name'])
      .where('store.id = :id', {id})
      .getOne()
查询的结果是 null ,我起初以为是我的 createQueryBuilder 代码有问题,所以直接运行 createQueryBuilder 生成的 SQL 代码,发现又能正常获取数据,想问下大家是什么原因呢?

teacher, image, ore, createquerybuilder

hua123s   
id 字符串?换成 number 试试呢
feeeff
OP
  
append:
store 的表结构定义为
```
@Entity()
export class Store extends BaseEntity{
@Column()
name: string
@Column()
description: string
@OneToMany(()=>Teacher, (teacher)=>teacher.store)
teachers: Teacher[]
}
```
teacher 的表结构定义为
```
@Entity()
export class Teacher extends BaseEntity{
@Column()
name: string
@ManyToOne(() => Store, (store) => store.teachers)
@JoinColumn({ name: "storeId" })
store: Store;
}
```
feeeff
OP
  
@hua123s 感谢你的回答,我刚刚试了你的方法,还是不行,结果如下图
![image]( https://github.com/wojiaofengzhongzhuifeng/study/assets/25478678/3ad51978-7208-4991-8d34-9e0d97fdc01a)
您需要登录后才可以回帖 登录 | 立即注册

返回顶部