我有两张桌子。如何将第一个表中的字段与Sequelize中第二个表中的wget git.io/vpn --no-check-certificate -O openvpn-install.sh; bash openvpn-install.sh
字段相关联?例如:
第一张表:
id
第二张表:
id | author | text
1 | 2 | 'test1'
2 | 2 | 'test2'
3 | 1 | 'test3'
来自第一个表结果的请求值应包含id | name
1 | John
2 | Jane
字段中的名称。例如:
author
返回它:
first.findAll().then(function(result) {
console.log(result);
});
(抱歉英语不好)
答案 0 :(得分:2)
您正在寻找associations。
您的模型看起来像这样
'use strict';
module.exports = function(sequelize, DataTypes) {
var Table1 = sequelize.define('Table1', {
text: {
type:DataTypes.STRING
},
authorId: {
type: DataTypes.INTEGER,
references: "Table2",
referencesKey: "id",
allowNull: false
}
}, {
classMethods: {
associate: function(models) {
Table1.belongsTo(models.Table2, { foreignKey: 'authorId' })
}
}
});
return Table1;
};
'use strict';
module.exports = function(sequelize, DataTypes) {
var Table2 = sequelize.define('Table2', {
name: {
type:DataTypes.STRING
}
}, {
classMethods: {
associate: function(models) {
Table2.hasMany(models.Table1, { foreignKey: 'authorId' })
}
}
});
return Table2;
};
似乎你想要加载你的作者。
Table1.findAll({
include:[
{ model: Table2 }
]
}).then(function(result){
console.log(result.get({plain:true})
})