sql - 如何为 Sequelize 转换 SQL 查询?

标签 sql node.js sequelize.js

我有一个 SQL 查询(使用 mysql 作为 DB),我现在需要将其重写为 node.js 中的 sequelize.js 查询。

SQL查询

SELECT p.UserID, SUM(p.score), u.username
FROM Picks p
LEFT JOIN Users u
ON p.UserId = u.id
GROUP BY p.UserId;

不太确定需要如何构造此查询才能使用 sequelize 获得相同的结果。

最佳答案

这应该做你需要的:

db.Pick.findAll({
  attributes: [
    'UserID',
    [db.sequelize.fn('SUM', db.sequelize.col('score')), 'score']
  ],
  include: [{
    model: db.User,
    required: true,
    attributes: ['username']
  }],
  group: ['UserID']
}).then((results) => {
  ...
})

关于sql - 如何为 Sequelize 转换 SQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47878505/

相关文章:

php - 在一个 php 页面上运行两个单独的 SQL 查询

node.js - 函数回调的返回值

node.js - less-middleware 没有编译,得到 404

migration - CockroachDB 的序列化迁移 - 错误 : no data source matches prefix: ranges

mysql - 如何修复where子句中的多个子查询

mysql 按周分组的费用帮助

mysql - 结合 3 个表(Union 或 JOIN)的结果获得正确的产品 bij

node.js - Sequelize 在创建语句中处理拒绝 - catch 不触发

javascript - 如何通过Sequelize连接多个数据库?

sequelize.js - 如果关系使用 "as",则属性与模型无关