gpt4 book ai didi

mysql - 如何在 Knex 中编写 mysql 子查询?

转载 作者:行者123 更新时间:2023-11-29 16:06:36 25 4
gpt4 key购买 nike

我试图在knex中编写mysql子查询sql,但查询结果不理想。

这是我的 MySQL 查询:

    select *
from istifta
where istifta_id not in (
select istifta_id
from status
where status = 'divided'
)

这是我的查询转换为 Knex:

    subquery = await ctx.knex
.select('istifta_id')
.from('status')
.where('status', 'divided')

result = await ctx.knex
.select()
.from('istifta')
.where('istifta_id', 'not in', subquery)

MySQL 查询返回两行,其中所有行都不具有 status = 'divided'当 Knex 返回三行时,其中一行具有 status = 'divided'

最佳答案

您可以使用.whereNotIn与 function() 定义选项一起嵌套子查询。您的子查询位于 function() 内部,如下所示:

 select('istifta_id').from('status').where('status', 'divided')

.on 函数只是让调试变得更容易。

result = await ctx.knex.from('istifta')
.whereNotIn( 'istifta_id', function() {
this.select('istifta_id').from('status').where('status', 'divided')
})
.on('query', function(data) {
console.log("TEST001 data:", data); })
.on('query-error', function(ex, obj) {
console.error("TEST002 KNEX query-error ex:", ex, "obj:", obj);
})

关于mysql - 如何在 Knex 中编写 mysql 子查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55687428/

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