nest.js如何写多表的查询呀?官网给的例子都是跟表一一对应的实例,满足不了需求。?

作者站长头像
站长
· 阅读数 13
                SELECT AVG(sco_progress.raw_score) AS score_average
                FROM   sco_progress
                           INNER JOIN construct ON sco_progress.sco_id = construct.sco_id and sco_progress.course_id = construct.course_id
                           INNER JOIN sco_master ON sco_progress.sco_id = sco_master.sco_id
                WHERE  sco_progress.user_id = <cfqueryparam cfsqltype="cf_sql_integer" value="#user_id#" />
                AND    construct.course_id = <cfqueryparam cfsqltype="cf_sql_integer" value="#course_id#" />
                AND    sco_master.sco_type = 1
                AND       sco_progress.raw_score IS NOT NULL

比如我想做上面这样的查询。为什么不直接给一个js对象赋值就好了,还需要Entities呢?Entities不是跟表结构一模一样吗?

nest.js如何写多表的查询呀?官网给的例子都是跟表一一对应的实例,满足不了需求。?

回复
1个回答
avatar
test
2024-07-02

无论 Sequelize 还是 TypeORM,对于复杂 SQL 都还比较弱鸡,跟 Java/C# 里的 ORM 差的还挺多的。

我建议你这种的就直接裸写 SQL 好了,如果参数来源不完全可信(有注入风险的),配合参数化就好了。

要是用的 TypeORM,用 QueryBuilder 也可以。

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容