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
相关产品推荐
相关产品推荐

