我正在尝试进行以下半原始knex查询:
knex.raw('select sum(invoice_price * quantity) from "localhost:3000".order_item').where({cart_session: 'some_session'}).then(function(data) {
console.log(data.rows[0].sum);
});
但是,我一直收到错误:knex.raw(...).where is not a function
。
有人可以帮忙吗?
提前致谢!
答案 0 :(得分:2)
我认为你不能以这种方式使用raw
,它通常会进入你通常使用模式构建器的地方。此外,看起来您也可以在sum
子句中执行原始操作。通过在raw
:
select
,这似乎可以实现您的目的
knex('order_item')
.select(knex.raw('sum(invoice_price * quantity)'))
.where({cart_session: 'some_session'})
这会产生以下sql:
select sum(invoice_price * quantity) from "order_item" where "cart_session" = 'some_session'