gpt4 book ai didi

mysql - TypeOrm - 使用 queryBuilder 的 NestJS

转载 作者:行者123 更新时间:2023-12-02 02:24:44 24 4
gpt4 key购买 nike

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

     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

我的 TypeOrm queryBuilder:

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。编号

我复制并粘贴它以在 phpmyadmin 中执行手动查询。查询似乎有效,并给了我预期的输出。我的代码中是否缺少某些内容,或者这是某种 TypeORM 限制?

最佳答案

尝试使用 getRawMany 而不是 getMany 如下 -

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();

关于mysql - TypeOrm - 使用 queryBuilder 的 NestJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65870541/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com