javascript - Knex - 选择多个表并订购
问题描述
我怎样才能把它翻译成 knex.js?
SELECT id,
Sum(x.kills) AS total
FROM (SELECT id,
kills
FROM bedwars_player_solo
UNION ALL
SELECT id,
kills
FROM bedwars_player_duo
UNION ALL
SELECT id,
kills
FROM bedwars_player_comp_clan) x
GROUP BY id
ORDER BY total DESC
LIMIT 10;
解决方案
我相信你可以把它写成
knex.select('id', knex.raw('SUM(x.kills)'))
.from(function() {
knex.select('id','kills').from('bedwars_player_solo')
.unionAll(
knex.select('id','kills').from('bedwars_player_duo'),
knex.select('id','kills').from('bedwars_player_comp_clan')
).as('x')
}).groupBy('id')
.orderBy('total', 'desc')
推荐阅读
- javascript - 在 es6 中合并多个嵌套对象数组?
- javascript - MySQL INSERT 查询:“字段列表”中的未知列“未定义”
- reactjs - 如何使用 react-paginate 使用反应钩子转换基于类的反应组件
- python - 带有重复条目的 Pandas 枢轴
- javascript - 一个字符串类型的数组项如何连接,每个数组项都有一个逗号字符,除了最后一项必须用“and”连接?
- rust - Rust 返回枚举作为泛型类型
- vue.js - CORS 仅在 Windows 上阻止了对图像的访问
- c# - Blazor WebAssembly 与服务器端 Razor 页面授权问题
- android - 在 Flutter 中输入错误的 SMS 代码时如何捕获错误?
- php - APIPlatform JWT authentication_token 路由问题