我正在尝试连接两个只与另一个表(第3个表)相关的表,并且这两个表的标识是第3个表的外键。请参考下图,以便我可以完整地描述我想要实现的目标。
关系规格:
这是可以实现的,还是应该更改我的数据库架构?
答案 0 :(得分:0)
对于您的ActualXBudget表格,请勿使用单个字段来识别实际和预算中的ID。使用两列,一列用于budgetID,另一列用于ActualID。这样,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
但不要这样做。