我有两张桌子
第一桌:
表名:用户
-id
-name
第二张表: 表名:记录
-player1ID
-player2ID
-player3ID
-location
-time
我想显示所有记录
我用“SELECT * FROM Record
”
但是,我想显示不是玩家ID,我想显示玩家的名字。如何编写可以执行此操作的SQL?感谢。
答案 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;