【发布时间】:2020-08-24 10:15:56
【问题描述】:
我尝试为此 SQL 查询创建 knex 查询:
SELECT
*
FROM
ad AS a
LEFT JOIN ad_file AS af ON
af.ad_id = a.id
AND af.file_id = (
SELECT
MIN(file_id)
FROM
ad_file AS afmin
WHERE
afmin .ad_id = a.id )
这是我的 JS 代码:
const trx = await knex.transaction();
const query = trx({a: "ad"});
const fileMin = trx({afm: "ad_file"});
fileMin.min("file_id");
fileMin.where("afm.ad_id", knex.raw("`a`.`id`"));
query.leftOuterJoin({af: "ad_file"}, function () {
this.on("a.id", "af.ad_id");
this.on("af.file_id", fileMin);
});
但我最后有错误的 SQL 查询:
select
*
from
`ad` as `a`
left outer join `ad_file` as `af` on
`a`.`id` = `af`.`ad_id`
and `af`.`file_id` =
select
min(`file_id`)
from
`ad_file` as `afm`
where
`afm`.`ad_id` = `a`.`id`
如何在SELECT MIN(file_id) FROM ... WHERE 中添加括号?
【问题讨论】:
标签: javascript sql knex.js