从外键获取名称

时间:2019-03-04 15:20:39

标签: mysql sql join

对于我的实习,我要安排休息时间参加比赛(台球,FIFA,飞镖等)

我建立了一个包含所有玩家的数据库,以及一个包含游戏和获胜者的列表。

Players (p_id PK, name)

Games (g_id PK, player_one FK, player_two FK)

Winners (g_id FK, winner FK)

因此,在游戏中,您可以选择玩家,而获胜者则可以从玩家中选择获胜者。

如何在表格中显示玩家的姓名而不是玩家的ID?

1 个答案:

答案 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
相关问题