首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeOrm -使用queryBuilder的NestJS

TypeOrm -使用queryBuilder的NestJS
EN

Stack Overflow用户
提问于 2021-01-24 20:30:53
回答 1查看 3.5K关注 0票数 1

我在mysql中有这样一个数据库模式:

代码语言:javascript
复制
     users_tbl
     --------------------------------------------
     id        |  first_name         | last_name
     --------------------------------------------
     1         |  Jon                | Doe
     2         |  Mark               | Smith


     address_tbl
     ------------------------------------------------------------
     id        |  address            | city             | user_id
     ------------------------------------------------------------
     1         |  some address       | some city        | 1

然后,我想使用TypeOrm的queryBuilder来获取Jon Doe的地址。

我的原始sql查询:SELECT users.first_name, users.last_name, address.address, address.city FROM users INNER JOIN address ON address.user_id=users.id

My TypeOrm queryBuilder:

代码语言:javascript
复制
const users = await this.userRepo
      .createQueryBuilder('users')
      .select('users.first_name', 'fName')
      .addSelect('users.last_name', 'lName')
      .addSelect('adr.address', 'address')
      .addSelect('adr.city', 'city')
      .innerJoin('address', 'adr', 'adr.user_id=users.id')
      .getMany();
return users;

似乎没有任何错误,因为我能够运行GET请求。但是,它返回一个空对象。在我的控制台中,NestJS (或TypeORM)记录生成的mysql查询。这就是它:

SELECT adr.city AS city, adr.country AS country, adr.id AS adr_id, users.first_name AS fName, users.last_name AS lName FROM users users INNER JOIN address adr ON adr.user_id = users.id

我复制并粘贴了它,以便在phpmyadmin中执行手动查询。查询似乎可以工作,并给出了预期的输出。我是不是在我的代码中遗漏了什么,或者这是TypeORM的一些限制?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-25 17:55:20

尝试使用getRawMany代替getMany,如下所示-

代码语言:javascript
复制
return await this.userRepo
      .createQueryBuilder('users')
      .select('users.first_name', 'fName')
      .addSelect('users.last_name', 'lName')
      .addSelect('adr.address', 'address')
      .addSelect('adr.city', 'city')
      .innerJoin('address', 'adr', 'adr.user_id=users.id')
      .printSql() 
      .getRawMany();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65870541

复制
相关文章

相似问题

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