sql - Knex 原始查询不工作 postgresql

我正在尝试进行以下半原始 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

有人可以帮忙吗?

提前致谢!

最佳答案

我认为您不能以这种方式使用 raw,它通常位于您通常会使用模式构建器的某个地方。此外,看起来您也不能在 sum 子句中执行原始操作。这似乎通过在 select 中使用 raw 来做你想做的:

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'

https://stackoverflow.com/questions/35495379/

相关文章:

html-table - 在单个表格行 中混合表格标题 和表格数据 单

visual-studio - 如何在 Google Chrome 扩展程序中创建侧边栏?

python - 如何在 python 中将对象作为命令行参数传递?

ruby - 如何使用 Chef Recipe 删除文件中的一行?

react-native - React Native 的 Realm - 不区分大小写的搜索

makefile - 使用 GNU Make 处理带空格的文件名

oracle - 安装 Oracle ODAC 12c 第 4 版 (12.1.0.2.4) 时出现

amazon-web-services - 更新和部署 Elastic Beanstalk 应用程序

php - 我可以在不使用 S3 API 的情况下从我的 Amazon S3 帐户下载文件吗?

python - 使用 gensim 库进行内存高效 LDA 训练