sequelize mysql 多表联查属性名变成了‘db_name.attribute’ 如何改成 'attribute'?
数据是源于第三方api同步过来的数据,所以我不想给他们在mysql上设置关联关系
所以我直接在 service 里设置关联关系
XbMoneyAllocation.belongsTo(XbHasClass, { foreignKey: 'contractProductId', targetKey: 'id' })
XbHasClass.belongsTo(XbProduct, { foreignKey: 'productId', targetKey: 'id' })
下面是执行查询
let res = await XbMoneyAllocation.findAll({
raw: true,
where: {
fundsChangeHistoryId: { [Op.in]: ids }
},
attributes: ['changeAmount'],
include: [{
model: XbHasClass,
attributes: ['productId'],
include: [{
model: XbProduct,
attributes: ['belongFeeTypeId']
}]
}]
})
这里得到的是结果
这里有两个问题需要解决
1、属性带上了表名
2、xb_has_class.productId
和 xb_has_class.xb_product.id
重复出现了
{
"changeAmount": 1734,
"xb_has_class.productId": 454905,
"xb_has_class.xb_product.id": 454905,
"xb_has_class.xb_product.belongFeeTypeId": 2019438
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论