You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Sequelize实现关联查询,仅获取用户表的name字段内容

修改方案

你需要将include参数从直接传入模型改为对象格式,通过attributes字段指定关联模型仅返回的字段,同时如果要完全对齐你给出的INNER JOIN逻辑,需要补充required: true配置(Sequelize默认关联为左外连接)。

最终可运行代码

Comments.findAll({
  where: {
    projectId: id
  },
  // 对应原生SQL的comments.comment,仅返回评论内容,不需要可删除本行
  attributes: ['comment'],
  include: [{
    model: User,
    // 仅返回关联用户的name字段
    attributes: ['name'],
    // 强制使用INNER JOIN,和你的SQL逻辑完全一致
    required: true
  }]
}).then(response => {
  res.json({comments: response})
})

改动说明

  • 关联模型配置的attributes: ['name']是核心改动,会过滤关联User的返回字段,仅保留你需要的name
  • 顶层的attributes: ['comment']是可选配置,用于限制评论表仅返回comment字段,和你给出的原生SQL查询字段完全对齐,如果不需要限制评论表返回字段可以直接删除
  • required: true会把默认的左外连接改为内连接,仅返回有关联用户的评论,和你的SQL逻辑匹配,如果可以接受无关联用户的评论也返回的话可以删除这个配置

内容的提问来源于stack exchange,提问作者Rodrigo Brinate

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 09:36:01