gpt4 book ai didi

join - Sequelize : how to join on foreign keys

转载 作者:行者123 更新时间:2023-12-03 22:20:10 26 4
gpt4 key购买 nike

我正在使用 Sequelize 和 Node.js,我需要在 2 个外键上加入 2 个表,

tableA.hasOne(tableB, { foreignKey: 'fk_tableB' });
tableB.belongsTo(tableA, {foreignKey: 'fk_tableB' });

(顺便说一下,我不明白“targetKey”的功能)
但我只能在 tableA.primaryKey = tableB.fk_tableB 上获得连接。
如何用 tableA.fk_tableA 替换 tableA.primaryKey?

我还尝试定义两次 tableA :在 2 个不同的结构中(一个使用真正的主键,另一个使用 fk_tableA 作为主键),但它也不起作用(因为我需要在另一个地方使用真正的 tableA 模式)。

有人有想法吗?这是 Sequelize 的错误吗?

最佳答案

How can I replace the tableA.primaryKey by tableA.fk_tableA?



没有 tableA.fk_tableA。但是,如果有,我们希望您将它命名为,因为列 tableA.fk_tableA 是 tableA 中关键列的 FK。因为这是命名列 fk_tableA 的约定。类似地,我们希望像您这样的belongTo 向tableA PK 添加一个FK 列,将其称为fk_tableA,而不是fk_tableB。就像你的 hasOne 给 tableA 一个列 fk_tableB 给 tableB PK。 (如果您希望 FK 位于 PK 之外的某个其他列,那么您可以通过 targetKey 这么说。)

如果您以目标表命名 FK,您似乎想要 tableA.fk_tableB = tableB.fk_tableA。按照您现在命名它们的方式,您似乎想要 tableA.fk_tableB = tableB.fk_tableB。

I need to join 2 tables on 2 foreign keys



您极不可能需要上述连接。将列声明为 FK 表示源/引用列的值始终是目标/引用列的值。这里的目标是 PK。这种将 FK 连接到一个表并将 FK 连接到另一个表只会返回共享相同 PK 值的行,即使这些 PK 来自不同的表。

关于join - Sequelize : how to join on foreign keys,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44312827/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com