从另一个表中的一个表加入多个列到单个列
问题描述:
我想了解如何将一个表中的多个列连接到另一个表中的单个列。从另一个表中的一个表加入多个列到单个列
这是最简单的形式我的表结构:
队
id | team_name |
1 | teamA |
2 | teamB |
3 | teamC |
4 | teamD |
交易
id | team_1 (FK to teams.id) | team_2 (FK to teams.id) |
1 | 1 | 2 |
2 | 3 | 4 |
这是我当前的SQL它连接到trades.team_1队。编号:
SELECT teams.team_name AS team1, teams.team_name AS team2, trades.team_1, trades.team_2
FROM teams
JOIN trades ON (trades.team_1 = teams.id);
我的问题是,如何创建第二个连接,也将trades.team_2连接到trades.id?
这将意味着trades.team_1和trades.team_2将被加入到trades.id
结果我想回去是:
team1 | team2 | team_1 | team_2 |
teamA | teamB | 1 | 2 |
teamC | teamD | 3 | 4 |
答
像这样:
select t1.team_name as team1, t2.team_name as team2, t.team_1, t.team_2
from trades t
inner join teams t1 on t1.id = t.team_1
inner join teams t2 on t2.id = t.team_2;
答
你需要加入两次:
SELECT t1.team_name as team1, t2.team_name as team2, trades.team_t, trades.team_2
FROM teams t1, teams t2, trades
WHERE t1.id = trades.team_1 and t2.id = trades.team_2
答
再次尝试加入团队表,但使用两种不同的别名:
SELECT
teams1.team_name AS team1,
teams2.team_name AS team2,
trades.team_1,
trades.team_2
FROM trades
JOIN teams AS teams1 ON trades.team_1 = teams1.id
JOIN teams AS teams2 ON trades.team_2 = teams2.id
答
SELECT t1.team_name AS team1, t2.team_name AS t2, tr.team_1, tr.team_2
FROM trades tr
INNER JOIN teams t1 ON t1.id = tr.team_1
INNER JOIN teams t2 ON t2.id = tr.team_2
哎呀10秒分开,我们有该死附近相同的答案。 =) – Crontab 2012-02-02 15:23:22
每个人都响应岩石。真的,感谢你们每个人的回应如此之快。所有的答案都是相似的,所有的答案都会有效。再次感谢人们! – Critter 2012-02-02 15:39:58
感谢您的帮助 – spr 2016-05-25 09:22:07