加入两个表并显示详细信息

时间:2012-02-27 06:35:19

标签: mysql sql

我有两张桌子 第一桌:
表名:用户

-id
-name

第二张表: 表名:记录

-player1ID
-player2ID
-player3ID
-location
-time  

我想显示所有记录 我用“SELECT * FROM Record
但是,我想显示不是玩家ID,我想显示玩家的名字。如何编写可以执行此操作的SQL?感谢。

3 个答案:

答案 0 :(得分:1)

您需要INNER JOIN 诀窍是多次加入User表(在不同的别名下),因为你需要多个值。

select u1.name as player1, u2.name as player2, u3.name as player3, r.location, r.time
from Record r
inner join User u1 on r.player1ID = u1.id
inner join User u2 on r.player2ID = u2.id
inner join User u3 on r.player3ID = u3.id

答案 1 :(得分:1)

您希望将“记录”表替换为ID?

在这种情况下,你可以JOIN User表到Record表(阅读关于联接here):

SELECT u.name as player1, u2.name as player2, u3.name as player3,
       r.location, r.time
FROM Record r
JOIN User u  ON  u.id=player1ID
JOIN User u2 ON u2.id=player2ID
JOIN User u3 ON u3.id=player3ID

答案 2 :(得分:0)

从记录d,用户a,用户b,用户c中选择a.name,b.name,c.name,d.location,d.time,其中d.player1Id = a.id&& d.player2ID = b.id&& d.player3ID = c.id;