You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Knex.js join查询中如何用andOnIn实现in子句的子查询

Knex中join查询on子句in条件的优雅实现

你可以直接将Knex子查询构造器作为andOnIn的第三个参数传入,完全不需要手动写raw语句,实现代码如下:

// 假设你要匹配的client_id值存在clientId变量中
.andOnIn(
  'kr.client', 
  knex.select('id')
    .from('client')
    .where('client.client_id', clientId)
)

这种写法的优势如下:

  • 自动处理参数绑定,无需手动维护$2这类占位符序号,避免后续查询条件调整时占位符序号错乱引发的bug
  • 完全符合Knex的链式调用规范,可读性和可维护性远高于raw写法
  • 内置防SQL注入能力,比手动拼接raw语句更安全

如果你的Knex版本低于0.95.0,andOnIn方法还未支持,可以先升级Knex版本再使用该写法,升级命令如下:

npm install knex@latest
# 或者用yarn
yarn add knex@latest

内容的提问来源于stack exchange,提问作者bjlevine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 19:12:01