bin
发布于

如何在 knex 中将 'and' 与 'on' 连接条件一起使用?

生成如下查询:

select ifnull(t1.name, ‘default’) as name
from tab1 as t1
left join tab2 as t2
on t1.id=t2.id and t2.code=“someValue”

但是:

var query = knex().from(’tab1’).join(’tab2', function() {

this.on('tab1.id', '=', 'tab2.id').andOn('tab2.code', '=', 'someValue')

},

‘left')
.column([

knex.raw(‘IFNULL(tab1.name, "no name") as name')

]);

这不执行,它将 'someValue' 视为一列。 在这种情况下,怎么应用 'and' 条件?

浏览 (82)
点赞
收藏
1条评论
Klustron小助手
Klustron小助手
var query = knex() .from('tab1') .join('tab2', function() { this.on('tab1.id', '=', 'tab2.id') .on('tab2.code', '=', knex.raw('?', ['someValue'])) }, 'left') .column([knex.raw('IFNULL(tab1.name, "no name") as name')]); 使用 knex.raw 将 someValue 作为 string 引用起来就可以了
点赞
评论