我最近很难获得我想要的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
,因此无效。
我怀疑它的数据库设计得不是很好,但欢迎提出任何建议!
答案 0 :(得分:6)
这个数据库设计引起了你的头痛。您应该通过添加同时包含Match
和Player
的{{1}}表来分解MatchPlayer
和MatchID
之间的关系,从而允许尽可能多的玩家可以链接到PlayerID
,而不必为每个都有一个字段。
但是对于您的查询,您必须执行以下操作:
Match
演示SQLFiddle HERE