gpt4 book ai didi

mysql - 用fkey关系组合两个表

转载 作者:行者123 更新时间:2023-11-30 00:11:14 24 4
gpt4 key购买 nike

我正在尝试连接两个仅与另一个表(第三个表)相关的表,并且两个表的标识是第三个表的外键。请引用下图,以便我可以完整地描述我想要实现的目标。

enter image description here

关系规范:

  • 实际.Id = 实际 x 预算.Id
  • 预算.Id = 实际 x 预算.Id
  • 预算.DateField = 实际值 x 预算.DateField
  • 最后一个关系:它们被分配为实际 x 上的相同数据预算.ColA

这是可以实现的还是我应该更改我的数据库架构?

最佳答案

对于 ActualXBudget 表,请勿使用单个字段作为实际 ID 和预算 ID。使用两列,一列用于预算 ID,一列用于实际 ID。这样,ActualXBudget 中的一行将同时链接到预算和实际。

根据您的设计,数据库不知道预算 ID 4 = 实际 ID 1。

通过 ActualXBudget 表中的实际 ID 和预算 ID,您可以对两个表进行简单的联接并提取附加记录,例如

SELECT Actual.ColA,Actual.ColB,Budget.ColB,Budget.ColC FROM
(Actual INNER JOIN ActualXBudget ON Actual.ID = ActualXBudget.ActualID)
INNER JOIN Budget ON Budget.ID = ActualXBudget.BudgetID

编辑:通过您的设置,您可以做到

 SELECT Actual.ColA,Actual.ColB,Budget.ColB,Budget.ColC FROM
(Actual INNER JOIN ActualXBudget ON Actual.ID = ActualXBudget.ID )
INNER JOIN Budget ON Budget.DateField = ActualXBudget.DateField

但不要这样做。

关于mysql - 用fkey关系组合两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24031550/

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