我有一个需要使用的现有数据库。
用户表看起来像这样:
id
name
storeId
商店表看起来有点像这样:
id
name
address
用户只能与一家商店相关联。我想要做的是:
User.hasOne(models.Store, { foreignKey: 'storeId' } ); // Working with existing db, so I need to specify the column name
然后,能够做到这样的事情:
User.find(1, { include: [models.Store] })
然而,这样做并不起作用。我收到以下错误:
Unknown column 'Store.storeId' in 'field list'
当我收到错误时,它正在尝试运行此查询:
SELECT `user`.*, `store`.`id` AS `store.id`, `store`.`name` AS `store.name`, `store`.`storeId` AS `store.storeId` FROM `user` LEFT OUTER JOIN `store` AS `store` ON `user`.`id` = `store`.`storeId` WHERE `user`.`id`=1 LIMIT 1;
这显然是错误的。它应该加入user.storeId = store.id
,并且不应该尝试选择store.storeId
。
我无法弄清楚如何使这项工作 - 任何提示?
我正在使用sequelize v1.7.9
答案 0 :(得分:0)
试试这个
User.hasOne(models.Store, { foreignKey: 'storeId' , as:'store'})
User.find(1, { include: [{model: models.Store, as: 'store'}] })