首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >试图从另一个表返回值

试图从另一个表返回值
EN

Stack Overflow用户
提问于 2016-03-29 07:28:49
回答 3查看 27关注 0票数 0

我有两个MYSQL表,用于纸牌游戏管理:

第一个,匹配表:

代码语言:javascript
运行
复制
ID   ATeam BTeam Player1 Player2
001  T1    T2    1       2

还有另一个表(player表),它的ID和名称是:

代码语言:javascript
运行
复制
ID Name
1  Dave
2  Martin

我要做的是使用MYSQL当前指定的player1 (例如ID player=1)的所有匹配项,并返回播放机的名称,而不是ID。为了实现这一点,我需要查询player表,但我不知道该使用什么:内部连接?

其结果应该是:

代码语言:javascript
运行
复制
001  T1  T2  Dave  Martin

而不是

代码语言:javascript
运行
复制
001 T1  T2  1  2

有什么想法吗?

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-29 07:34:12

一个简单的联接查询:

代码语言:javascript
运行
复制
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 = ?
票数 2
EN

Stack Overflow用户

发布于 2016-03-29 07:38:46

代码语言:javascript
运行
复制
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;
票数 1
EN

Stack Overflow用户

发布于 2016-03-29 07:40:58

与@Giorgos Betsos的回答相同,但使用左联接

代码语言:javascript
运行
复制
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)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36278029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档