postgresql - 如何从 PostgreSQL 查询正确构建 KnexJS 查询
问题描述
我很难将 PSQL 查询转换为 KnexJS。
PSQL 中的查询是这样的,但是当我将它添加到一个名为的方法中时joinStatuses()
,我只共享我需要转换的内容。
join (
select
max(id) as id,
candidate_id
from
statuses
group by
candidate_id) ms on
ms.candidate_id = c.id
join statuses s on
s.id = ms.id
我尝试在以下方法中插入的查询但由于我不知道最好的方法而失败
在这个方法之前,我们有来自包含这个的类的信息
const selectColumnsOfTable = (prefix, columns) =>
Object.keys(columns).map(
(column) => `${columns[column]} AS ${prefix}_${column}`
);
constructor(tx) {
this.tx = tx;
this.builder = this.tx(tableName);
}
从我加入的地方:
columnsByProperties as columnsStatus,
tableName as tableNameStatus,
方法
joinStatus() {
this.builder
.join(tableName, function () {
this.on(
this.tx(tableNameStatus)
.select(selectColumnsOfTable('status', columnsStatus))
.max(columnsStatus.id)
.as('ms')
.groupBy(columnsStatus.candidateId)
);
})
.join(tableNameStatus, function () {
this.on(columnsStatus.id, '=', 'ms'.id);
});
return this;
}
我的问题是这里所说的一切都不是一个函数。
我想让这个工作以正确的方式进行 2 个连接。
解决方案
推荐阅读
- omnet++ - 在 OMNeT++ 仿真中使用使用 Matlab Compiler SDK 创建的共享库
- mysql - 使用条件创建触发器并替换
- r - 来自 SQL 奇怪行为的 R 表
- sql - 使用 SQL 代码向 athena 中的现有表添加新的分区方案
- python - 在 django 的视图中使用查询没有从 mysql 获取结果
- python-3.x - How to get the first column (index) in the dictionary output with Pandas?
- python - plt.imshow() 显示标准化图像,即使按 *= 255 缩放
- mysql - 通过flutter应用直接连接MySQL
- c# - xaml UI 未以 xamarin 形式更新
- python - python 验证 AWS S3 标准 ACL / 获取有效标准 ACL 列表