gpt4 book ai didi

javascript - 将 MySQL 查询转换为等效的 Knex QueryBuilder 语法?

转载 作者:行者123 更新时间:2023-11-29 11:25:52 25 4
gpt4 key购买 nike

我很难将特定的 MySQL 查询复制到 Knex 中(我使用 Bookshelf 作为 ORM)。直接在 MySQL 终端中查询数据库时,SQL 查询本身会返回正确的数据集。

MySQL 查询:

SELECT processed_articles.*, publications.pub_name
FROM processed_articles
INNER JOIN processed_articles_trends ON processed_articles_trends.processed_article_id = processed_articles.id
INNER JOIN publications ON publications.id = processed_articles.pub_id
WHERE (processed_articles_trends.trend_id = 2);

Knex 查询生成器:

knex.select(['publications.pub_name', 'processed_articles.*'])
.innerJoin('processed_articles_trends', 'processed_articles.id', 'processed_articles_trends.processed_article_id')
.innerJoin('publications', 'processed_articles.pub_id', 'publications.id')
.where('processed_articles_trends.trend_id', '=', 2);

我知道 Knex 语法不正确,但我不确定在哪里(我怀疑 Knex 查询的第 1 行中的数组语法...)并且我一生都无法弄清楚如何翻译 SQL 。表“processed_articles_trends”表示表“processed_articles”和“trends”表之间的联接表。

我最初尝试使用我的 Bookshelf 模型定义和“withRelated”参数,但是 Bookshelf 在幕后执行了一些巫术,这让我很难确定如何从“出版物”中拉回我需要的字段'表。

感谢您的任何见解 - 非常感谢。

最佳答案

knex('processed_articles')
.innerJoin('processed_articles_trends', 'processed_articles.id', 'processed_articles_trends.processed_article_id')
.innerJoin('publications', 'processed_articles.pub_id', 'publications.id')
.where('processed_articles_trends.trend_id', '=', 2)
.select(db.raw('processed_articles.*'))
.select('publications.pub_name')

关于javascript - 将 MySQL 查询转换为等效的 Knex QueryBuilder 语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38213460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com