对于我的实习,我要安排休息时间参加比赛(台球,FIFA,飞镖等)
我建立了一个包含所有玩家的数据库,以及一个包含游戏和获胜者的列表。
Players (p_id PK, name)
Games (g_id PK, player_one FK, player_two FK)
Winners (g_id FK, winner FK)
因此,在游戏中,您可以选择玩家,而获胜者则可以从玩家中选择获胜者。
如何在表格中显示玩家的姓名而不是玩家的ID?
答案 0 :(得分:1)
类似
SELECT
g.g_id,
p1.name as `player_one`,
p2.name as `player_two`
FROM Games g
INNER JOIN Players p1
ON p1.p_id = g.player_one
INNER JOIN Players p2
ON p2.p_id = g.player_two
对于您的游戏桌和
SELECT
w.g_id,
p.name as `winner`
FROM Winners w
INNER JOIN Players p
ON p.p_id = w.winner
为您的获奖者表
然后将所有三个一起加入
SELECT
g.g_id
,p1.name AS `player_one`
,p2.name AS `player_two`
,pw.name AS `winner`
FROM Games g
INNER JOIN Players p1
ON p1.p_id = g.player_one
INNER JOIN Players p2
ON p2.p_id = g.player_two
LEFT JOIN Winners w
ON w.g_id = g.g_id
LEFT JOIN Players pw
ON pw.p_id = w.winner