具有链接到同一主键的多个外键的表

时间:2012-05-25 08:21:02

标签: mysql sql

我最近很难获得我想要的MySQL数据库查询结果 - 目前我不确定问题是关于数据库还是实际查询。

基本上它是一个包含这些表格的足球运动员数据库:

(player): player_id (primary), playerName
(match): match_id (primary), playerID1, playerID2, playerID3, etc..

我想查询数据库,以便返回匹配数据库中的属性,但返回的是玩家的名字,而不是他们的ID。

我可以让它为一个玩家工作,而不是其他玩家。这是代码:

SELECT p.Name 
FROM `match` m
inner join `player` p on p.player_id=m.playerID1

但是当我添加第二个播放器时,p.Name已经映射到playerID1,因此无效。

我怀疑它的数据库设计得不是很好,但欢迎提出任何建议!

1 个答案:

答案 0 :(得分:6)

这个数据库设计引起了你的头痛。您应该通过添加同时包含MatchPlayer的{​​{1}}表来分解MatchPlayerMatchID之间的关系,从而允许尽可能多的玩家可以链接到PlayerID,而不必为每个都有一个字段。

但是对于您的查询,您必须执行以下操作:

Match

演示SQLFiddle HERE