MySQL - 加入2个表,共有2个ID

时间:2009-12-17 12:27:46

标签: mysql join

我需要2个表来获取信息,并希望在一个查询中获取信息。

情况如下:

table "matches" :

id
team_A_id
team_B_id

table "teams" :

id
name

目标是从表“匹配”(足球比赛)中检索信息,并将信息与表“团队”一起加入。我需要这个,因为我的webservice提供者没有我的语言(葡萄牙语)的xml数据,所以我需要为我的客户提供将某些团队名称翻译成葡萄牙语的选项,否则我会直接在团队名称上添加团队名称。 “匹配”表。问题是我需要用2个id加入2个表。我知道如何将1个id共享的表连接起来,但是无法弄清楚如何使用2个id来完成它,并且保持每个匹配中涉及的2个团队的信息不变。

这可能吗?或者我是否必须创建单独的查询?

3 个答案:

答案 0 :(得分:10)

select match.*, teama.name, teamb.name
from matches as match
inner join teams as teama on teama.id = match.team_A_id
inner join teams as teamb on teamb.id = match.team_B_id

可以在SQL Server中运行,也可能在MySQL中运行。

答案 1 :(得分:6)

第二次包含团队表(使用不同的别名)并将查询视为在三个表之间:

SELECT *
FROM matches m
JOIN teams t1 ON m.team_A_id = t1.id
JOIN teams t2 ON m.team_B_id = t2.id

答案 2 :(得分:3)

SELECT *
  FROM matches m, team t1, team t2 
 WHERE m.team_A_id = t1.id
   AND m.team_B_id = t2.id