【发布时间】:2017-07-23 09:30:37
【问题描述】:
我目前有两个 MSSQL 表。一个“项目”表,其中包含一个项目“名称”和一个“托盘”表,其中包含一个托盘“条形码”。我有一个名为“ItemPallets”的连接表,它将多个项目链接到多个托盘。
“ItemPallets”包含项目 ID(主键)和托盘 ID(主键)以及“序列号”。
数据示例如下:
物品
+ -- + ---- +
| Id | Name |
+ -- + ---- +
| 1 | 123 |
+ -- + ---- +
托盘
+ -- + ------- +
| Id | Barcode |
+ -- + ------- +
| 1 | ABC |
| 2 | DEF |
+ -- + ------- +
物品托盘
+ -- + ------ + -------- + ------------- +
| Id | ItemId | PalletId | Serial Number |
+ -- + ------ + -------- + ------------- +
| 1 | 1 | 1 | a400 |
| 2 | 1 | 1 | a401 |
| 3 | 1 | 1 | a402 |
| 4 | 1 | 2 | a403 |
+ -- + ------ + -------- + ------------- +
这意味着 Pallet ABC 中有三个名称为 123 的项目,序列号分别为 a400、a401 和 a402,最后一个项目名称为 123 在 Pallet DEF 中,序列号为 a403。
我正在尝试取回与 Item Pallet 关联的所有 ItemPallet 行,即 Item.Pallet[0].ItemPallets 应该包含一个数组,我希望该数组包含三个 Rows,序列号为 a400 , a401 和 a402。
但是,虽然我的阵列包含两个托盘,但为什么每个托盘只包含一个序列号?
我目前使用的代码如下:
models.Item.findOne({
where: {id: 1},
include: [
{ model: models.Pallet }
]
});
【问题讨论】:
标签: sql-server node.js many-to-many sequelize.js