knex 找不到mysql_mysql - 尝试使用knex与构建复杂查询嵌入在where子句中选择 - 堆栈内存溢出...

在尝试将SQL查询转换为knex时遇到问题,查询涉及到根据子查询获取最大版本号。当尝试在knex中执行此操作时,出现'ER_NO_TABLES_USED'错误,表明没有使用到任何表格。已经尝试了多种变体,但都未成功。寻求帮助解决这个问题。
摘要由CSDN通过智能技术生成

我正在尝试将以下SQL查询转换为knex:

SELECT A.sid,

A.rid,

A.dataset_name,

A.jobname,

A.ndmjob,

A.ndmprocess,

A.programs,

A.version,

A.backup_dataset,

A.fxrnum,

A.`type`,

A.destination,

A.frequency,

A.snode,

A.runtask,

A.clientDSN,

A.comments

FROM filedesigner.fileSpecification A

WHERE A.file_id = var_fileid AND

A.version = (

SELECT MAX(B.version)

FROM filedesigner.fileSpecification B

WHERE B.sid = A.sid

AND B.version <= var_version)

ORDER BY A.rid DESC,

A.dataset_name;

我目前在我的knex查询解析器中有以下内容:

this.db

.select(

'A.sid as specId',

'A.version',

'A.rid',

'A.dataset_name as datasetName',

'A.jobname as jobName',

'A.ndmjob as ndmJob',

'A.ndmprocess as ndmProcess',

'A.backup_dataset as backupDataset',

'A.programs',

'A.fxrnum as fxrNum',

'A.type',

'A.destination',

'A.frequency',

'A.snode',

'A.runtask',

'A.clientDSN',

'A.comments'

)

.from('fileSpecification as A')

.where('file_id', fileId)

.andWhere('version', () => this.db

.max(

'B.version'

)

.from('fileSpecification as B')

.where('A.sid', 'B.sid')

.andWhere('B.version', '<=', version)

.then(data => data[0]))

.orderBy('sid', 'asc')

.orderBy('version', 'desc')

.orderBy('rid', 'desc')

.orderBy('dataset_name', 'asc')

.cache(ttl)

.then(data => data);

但结果是我收到此错误:(变量为fileId = 33和version ='2.0.1')

select `A`.`sid` as `specId`, `A`.`version`, `A`.`rid`, `A`.`dataset_name` as `datasetName`, `A`.`jobname` as `jobName`, `A`.`ndmjob` as `ndmJob`, `A`.`ndmprocess` as `ndmProcess`, `A`.`backup_dataset` as `backupDataset`, `A`.`programs`, `A`.`fxrnum` as `fxrNum`, `A`.`type`, `A`.`destination`, `A`.`frequency`, `A`.`snode`, `A`.`runtask`, `A`.`clientDSN`, `A`.`comments` from `fileSpecification` as `A` where `file_id` = 33 and `version` = (select *) order by `sid` asc, `version` desc, `rid` desc, `dataset_name` asc - ER_NO_TABLES_USED: No tables used

我尝试了几种变体,它们都给我相同的结果,或更糟的是。 任何帮助,将不胜感激!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值