Database 如何在MS Access中建立此关系(图片)
我需要将id_球员从桌上球员连接到桌上球员得分和球员协助。主键必须引用这两个Database 如何在MS Access中建立此关系(图片),database,ms-access,foreign-keys,primary-key,relationship,Database,Ms Access,Foreign Keys,Primary Key,Relationship,我需要将id_球员从桌上球员连接到桌上球员得分和球员协助。主键必须引用这两个 有办法吗 Access写下“关系已经存在” 我将感谢你的每一个回答 访问屏幕- 这是正确的解决方案吗 对于表中存在的每个外键引用;必须对主/基表进行单独的联接才能获取相关数据 就你而言;再次将玩家添加到您的查询中,并将其加入到目标中;当加入球员进球时。球员得分 至于原因:同一个连接不能同时获取两个数据段,因为它们表示与players表的不同关系 在SQL中,这看起来像: SELECT G.* , PS.id_
有办法吗
Access写下“关系已经存在”
我将感谢你的每一个回答
访问屏幕-
这是正确的解决方案吗 对于表中存在的每个外键引用;必须对主/基表进行单独的联接才能获取相关数据 就你而言;再次将玩家添加到您的查询中,并将其加入到目标中;当加入球员进球时。球员得分 至于原因:同一个连接不能同时获取两个数据段,因为它们表示与players表的不同关系 在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
请注意,我们将球员的场名化名,以便我们知道哪些球员得分,哪些球员辅助得分。为了可读性,我们还对表进行了别名,因为我们必须复制“Players”的副本,并让引擎跟踪我们所指的表;我们必须以不同的方式“命名”
我第二次离开外线是因为不是所有的分数都有助攻;但是所有的分数都有人给他们打分。因此,球员的第一次加入可以是内部加入,但第二次加入可能没有助攻;我们仍然希望看到所有目标的细节。如果我们让第二个加入一个内部的,我们将失去所有没有助攻的分数。作为一个查询:建立(创建)两个玩家表副本。别名一为玩家的分数;另一个作为球员助攻。现在就实体关系图(ERD)而言:系统在目标表中将Players.ID_Player作为FK两次不应该有问题;只要两个约束都有不同的名称。我添加了另一个图像。这是正确的方法吗?要使查询正常工作:是。由于Goals有两个FK对玩家的引用,所以玩家表必须列出两次。经验法则是:对表的每个FK(外键)引用都必须有自己对该表的连接。因为目标与玩家有2个FK关系;玩家必须列出两次(使用不同的名称/别名)。因此,当添加其他副本时,Access将自动放置TableName_35;。如果您“查看SQL”,您将看到涉及3个表,并且玩家的别名为玩家。\u 1简短回答“是”;但是你可能想让球员们加入一个外部联盟:包括所有进球记录,只包括球员们的进球记录;如果不是所有的进球都需要助攻,这是真的。嘿,现在我明白了。感谢您的回答和时间。如果这个答案有用:请确保投票和/或将答案标记为正确,以便其他人可以从解释中受益。此外,下次你提问时,如果你通过标记接受的答案来完成过程,人们更有可能花时间回答。如果你想等待接受,看看是否有更好的东西;那也很好;但如果这至少有助于提高投票率的话!