0
我有這些模型:Sequelize結合源模型到目標模型
module.exports = function(sequelize, DataTypes) {
const Tool = sequelize.define('Tool', {
Price: {type: DataTypes.STRING(255)},
PurchaseDate: DataTypes.DATE,
});
return Tool;
};
module.exports = function(sequelize, DataTypes) {
const RepairOrder = sequelize.define('RepairOrder', {
OrderNumber: {type: DataTypes.STRING(255)}
}, {
classMethods: {
associate(models) {
RepairOrder.belongsTo(models.Tool, {as: 'Tool'});
}
}
});
return RepairOrder;
};
module.exports = function(sequelize, DataTypes) {
const Hammer = sequelize.define('Hammer', {
Color: {type: DataTypes.STRING(255)}
},
{
classMethods: {
associate(models) {
Hammer.belongsTo(models.Tool, {as: 'Tool'});
}
}
});
return Hammer;
};
module.exports = function(sequelize, DataTypes) {
const Spanner = sequelize.define('Spanner', {
Size: {type: DataTypes.STRING(255)}
},
{
classMethods: {
associate(models) {
Hammer.belongsTo(models.Tool, {as: 'Tool'});
}
}
});
return Spanner;
};
由於屬於關聯方法錘子扳手有ToolID列。 現在我想要收到所有具有工具信息的修理訂單,所以我將這些工具加入修理訂單。
RepairOrder.findAll({
attributes: ['ID', 'OrderNumber'],
include: [{
model: Tool, as: 'Tool'
}]
});
但我也想知道哪種類型的工具選擇修理訂單時,它是(錘子或扳手),所以我怎麼能加入到雙方的工具? 類似於
RepairOrder.findAll({
attributes: ['ID', 'OrderNumber'],
include: [{
model: Tool, as: 'Tool',
include: [{'JOIN ON "Hammer"."ToolID" = "Tool"."ID"'},
{'JOIN ON "Spanner"."ToolID" = "Tool"."ID"'}]
}]
});
完美地工作,謝謝。 – frichter