我有两个MYSQL表,用于纸牌游戏管理:
第一个,匹配表:
ID ATeam BTeam Player1 Player2
001 T1 T2 1 2还有另一个表(player表),它的ID和名称是:
ID Name
1 Dave
2 Martin我要做的是使用MYSQL当前指定的player1 (例如ID player=1)的所有匹配项,并返回播放机的名称,而不是ID。为了实现这一点,我需要查询player表,但我不知道该使用什么:内部连接?
其结果应该是:
001 T1 T2 Dave Martin而不是
001 T1 T2 1 2有什么想法吗?
谢谢!
发布于 2016-03-29 07:34:12
一个简单的联接查询:
SELECT m.ID, m.ATeam, m.BTeam, p1.Name, p2.Name
FROM Matches AS m
JOIN Players AS p1 ON m.Player1 = p1.ID
JOIN Players AS p2 ON m.Player2 = p2.ID
WHERE m.Player1 = ?发布于 2016-03-29 07:38:46
select m.id, m.ATeam, m.BTeam, p1.name, p2.name from matches m inner join player p1 inner join player p2 on m.player1 = p1.id and m.player2 = p2.id;发布于 2016-03-29 07:40:58
与@Giorgos Betsos的回答相同,但使用左联接
SELECT Matches.ID, Matches.ATeam, Matches.BTeam, p1.Name, p2.Name
FROM Matches
LEFT JOIN Players AS p1 ON (Matches.Player1 = p1.ID)
LEFT JOIN Players AS p2 ON (Matches.Player2 = p2.ID)https://stackoverflow.com/questions/36278029
复制相似问题