【发布时间】:2018-08-22 11:57:29
【问题描述】:
我使用 express.js 和 sequelize,mysql
数据库
A : { id: 1, name: ... }
B : { A_id: 1, name: name1 }, { A_id: 1, name: name2 }
模型/A.js
A.association = models => {
A.hasMany(models.B, { foreignKey: 'A_id' });
};
const { B } = require('../models');
A.get = _id => {
return A.findAll({
where: { id: _id },
include: [{ model: B }],
});
};
模型/B.js
B.association = models => {
B.belongsTo(models.A, { foreignKey: 'A_id' });
};
路由/test.js
A.get(1).then(record => { console.log(record); });
执行查询
SELECT A.id, A.name, B.A_id, B.name
FROM A
LEFT OUTER JOIN B ON A.id = B.A_id
WHERE A.id=1;
结果
应该有 { A_id: 1, name: name2 }
[A: {
id: 1,
name: ...,
Bs: [{ A_id: 1, name: name1 }]
}];
有什么问题?查询很好。它返回数据'name1,name2'
为什么 Sequelize 方法没有得到所有 B 列?
【问题讨论】:
-
这是由于两个表中的列相同。因此,如果两个表具有相同的列名,请尝试使用别名。
标签: javascript node.js express sequelize.js