我试图编写一个MySQL查询,将同一表中的两列连接到另一个表中。我看过许多例子,尝试了很多事情,其中大多数只是因为某种原因而出错。
我有一张团队桌:
ID | Team
1 | Team 1
2 | Team 2
3 | Team 3
4 | Team 4我有张赌桌:
ID | Team_1 | Team_2
1 | 1 | 2
2 | 2 | 3
3 | 3 | 4
4 | 4 | 1我有以下查询:
SELECT PIO.Games.id
, Team.Name AS `Team-1`
, Team.Name AS `Team-2`
FROM Games
left
JOIN Team
ON Games.Team_1 = Team.id
left
JOIN Team as T2
ON Games.Team_2 = Team.id我需要列出比赛的名单和球队的名字,我想:
Game_ID Team-1 Team-2
1 | Team 1 | Team 2
2 | Team 2 | Team 3
3 | Team 3 | Team 4
4 | Team 4 | Team 1但我要让一队打两次:
Game_ID | Team-1 | Team-2
1 | Team 1 | Team 1
2 | Team 2 | Team 2
3 | Team 3 | Team 3
4 | Team 4 | Team 4到目前为止,我已经花了好几个小时在这个问题上,却什么也想不出来!我想这是我错过的很简单的事情。
我已经在Navicat和SequelPro的MAMP数据库中尝试了这些解决方案。
有什么想法吗?所有的帮助都感激地感谢。
发布于 2016-01-05 23:11:34
使用您创建的别名。这将允许您两次加入Table,但不会混淆db引擎。
SELECT g.id, t.Name AS Team-1, t2.Name AS Team-2
FROM Games AS g
LEFT JOIN Teams AS t ON g.Team_1 = t.ID
LEFT JOIN Teams AS t2 ON g.Team_2 = t2.ID发布于 2016-01-06 00:08:01
已经解决了,谢谢你的帮助。看上去我在这个例子中把自己搞糊涂了!用.Team代替.Name,一切似乎都很好。
SELECT
Games.id,
T1.Name AS "Team-1",
T2.Name AS "Team-2"
FROM Games
left join Team as T1 on Games.Team_1 = T1.id
left join Team as T2 on Games.Team_2 = T2.idhttps://stackoverflow.com/questions/34622870
复制相似问题