typeorm关联查询如何筛选关联数据?
const user = this.userRepository
.createQueryBuilder('user')
.leftJoin('user.tel', 'tel')
.where('user.id = :userId', { userId })
.getOne();
return user;
一个user有多个tel,是一对多的关系,现在我只需要查最新的一条即可,没必要把tel全查出来,应该怎么写?
回复
1个回答
test
2024-06-25
const user = await this.userRepository
.createQueryBuilder('user')
.leftJoinAndSelect( // 注意这里用了 'leftJoinAndSelect' 而不只是 'leftJoin'
'user.tel',
'tel',
'tel.createdDate = (SELECT MAX(t.createdDate) FROM TelEntity t WHERE t.userId = user.id)'
// 假设 tel 表的实体名为 'TelEntity',且 tel 表里与 user 表关联的字段名是 'userId'
)
.where('user.id = :userId', { userId })
.getOne();
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容