假设我有两个表:TradeSetting
和 TradePrices
。一个 TradePrice 可以被多个 TradeSettings 使用。在 Express 中,我想列出所有 TradeSettings 以及相应的 TradePrice,因此我对两个表使用sequelize 的 findAll
并将结果传递到我的 jade View 。
我的问题:
如何为相应的 TradeSetting 输出正确的价格,而不为我的 Jade View 的每次迭代创建新的选择:
each tradeSetting in tradeSettings
td #{tradeSetting.Name}
td #{tradeSetting.PriceId}
td // the according price for this tradeSetting
我考虑过使用类似关联数组的东西,以便我可以用 #{TradePrice[tradeSetting.PriceId]}
输出它,但我不确定这是否可能以及我需要什么做什么?
我的两个表格如下所示(简化):
TradeSettings(Id、名称、PriceId)
交易价格(ID,价格)
旁注:我尚未在数据库中使用外键,但我可以将它们添加到那里,并在必要时相应地调整模型。
最佳答案
通过迭代 TradeSetting
来预处理数据,找到每个 TradeSetting 的匹配 TradePrice 并将其作为新属性保存到每个 TradeSetting 中。
之后,每个 TradeSetting 都有其正确的 TradePrice 作为属性轻松访问(就像您访问 Name 或 PriceId 一样)。
然后,您可以轻松地迭代您的 TradeSettings,并在第三 td
行(来自您的示例)中,您可以使用 #{tradeSetting.TradePrice.Price}
编辑:您提到您正在使用sequelize,如果可以在数据库中设置外键,那么您也可以使用它。 如果一切设置正确,请尝试
TradeSetting.findAll({ include: [TradePrice])
然后在你的 Jade 模板中
tradeSetting.get('TradePrice').get('Price')
关于mysql - 在sequelize中输出两个表的关联信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38180875/