gpt4 book ai didi

postgresql - 除了 knex.js 中的查询

转载 作者:行者123 更新时间:2023-11-29 14:09:35 25 4
gpt4 key购买 nike

我正在尝试将表 b 上的子查询插入到表 a 中。子查询中的许多记录已经在表 a 中。在 postgres 中执行此操作的惯用方法似乎是使用 EXCEPT 查询。但是,我找不到 knex 对此的支持(原始除外)。有没有办法执行我错过的 EXCEPT 查询?我知道我可以在子查询中加入 a 并执行 WHERE NOT IN,但这似乎会慢得多。

最佳答案

最快的查询方式existence据我所知,在 postgres 中是 where exists/not exists

这可以通过 knex 轻松完成

const knex = require('knex')({ client: 'pg' })

const builder = knex('table_name')
.insert((sub) => {
sub.select('*').from('another_table').whereNotExists((existsBuilder) => {
existsBuilder
.select('*')
.from('table_name')
.whereRaw('table_name.id = another_table.id')
})
})

console.log(builder.toString())
// => insert into "table_name" select * from "another_table" where not exists (select * from "table_name" where table_name.id = another_table.id)

关于postgresql - 除了 knex.js 中的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45081679/

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