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

如何在Sequelize中实现关联表非嵌套格式的数据查询?

Sequelize单次查询实现关联表字段平级返回

要实现单次查询就得到你想要的非嵌套格式数据,不需要分两次查询拼接,可以通过显式指定字段别名的方式来处理:

解决方案代码

const { col } = require('sequelize');

const operator = await operatorService.findOne({
  where: { id: id },
  // 手动指定需要返回的所有字段,给关联表的email设置别名
  attributes: [
    'city',
    'firstName',
    [col('Account.email'), 'email']
  ],
  include: {
    model: models.Account,
    attributes: [] // 这里不需要返回Account的原生字段,避免冗余
  },
  raw: true
});

原理说明

你之前的代码用raw: true时,Sequelize会自动给关联表的字段加上模型名.字段名的前缀来区分来源。通过sequelize.col()方法指定关联表的字段,再给它设置别名email,就能让关联字段直接平级出现在结果对象里,同时保持单次查询的效率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 13:22:03