我有SQL语句:
select from resources
left join ( select resource_id, sum(price) as PostScoreSum from
prices where '2019-06-8' < dateto and '2019-06-15' >
datefrom group by resource_id ) BB on
resources.resources_id = BB.resource_id")
使用Knex,我可以将该语句写为knex.raw('.....'),但是在此knex语句之后,我不能使用Modify(具有语句链,knex.raw('...' ).modify ...是不可能的)。是否可以在表和选择之间用Knex编写此联接,而无需使用raw。
答案 0 :(得分:1)
不清楚您的实际问题是什么,但随后将产生您上面的查询-
const sql = knex('resources')
.leftJoin((query) => {
query
.columns([
'resource_id',
knex.raw('sum(price) as PostScoreSum')
])
.from('prices')
.where('dateto', '>', '2019-06-8')
.where('datefrom', '<', '2019-06-8')
.groupBy('resources_id')
.as('BB')
}, 'resources.resources_id', 'BB.resource_id')
.toSQL();
console.log(sql) ;