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不是跟表结构一模一样吗?
无论 Sequelize 还是 TypeORM,对于复杂 SQL 都还比较弱鸡,跟 Java/C# 里的 ORM 差的还挺多的。
我建议你这种的就直接裸写 SQL 好了,如果参数来源不完全可信(有注入风险的),配合参数化就好了。
要是用的 TypeORM,用 QueryBuilder 也可以。