如何在MS Access中建立这种关系(图片)

时间:2018-05-07 18:08:51

标签: database ms-access foreign-keys primary-key relationship

我需要将表格玩家的id_player连接到表格目标中的player_score和player_assist。主键必须引用这两个。
有什么方法可以做到吗?
Access写我"关系已经存在"。
我会感激每一个答案。

访问屏幕 - Access
这是正确的解决方案吗? - Possible solution

1 个答案:

答案 0 :(得分:1)

对于表中存在的每个外键引用;必须对main / base表进行单独的连接以获取相关数据。

在你的情况下;再次向您的查询添加玩家并将其加入Goals.player_assist;加入Players to Goals.Player_Score。

至于原因:同一个连接不能获得两个数据,因为它们代表与player表的不同关系。

SQL中的

看起来像:

SELECT G.*
     , PS.id_Player as ScoredByID_Player
     , PS.first_name as ScoredByfName
     , PS.last_name as ScoredBylName
     , PA.id_Player as AssistedByID_Player
     , PA.First_name as AssistedByfName
     , PA.Last_name as AssistedBylName
FROM GOALS G
INNER JOIN Players PS
 on G.id_Player = PS.Player_Score
LEFT JOIN Players PA
 on G.id_Player = PA.Player_Assist

注意我们为玩家的字段名称添加了别名,因此我们知道哪个得分,哪个得到了帮助。为了便于阅读,我们还对表格进行了别名,因为我们必须复制“玩家”并让引擎跟踪我们所说的表格;我们必须让它们“命名”不同。

我第二次加入(外线)的原因是因为并非所有得分都有助攻;但所有得分都有人得分。因此,第一次加入玩家可以是内部联接,但第二次加入可能没有帮助;我们仍然可能希望查看所有目标的详细信息。如果我们将第二次加入内线加入,我们将失去所有未得到助攻的分数。