我需要2个表来获取信息,并希望在一个查询中获取信息。
情况如下:
table "matches" :
id
team_A_id
team_B_id
table "teams" :
id
name
目标是从表“匹配”(足球比赛)中检索信息,并将信息与表“团队”一起加入。我需要这个,因为我的webservice提供者没有我的语言(葡萄牙语)的xml数据,所以我需要为我的客户提供将某些团队名称翻译成葡萄牙语的选项,否则我会直接在团队名称上添加团队名称。 “匹配”表。问题是我需要用2个id加入2个表。我知道如何将1个id共享的表连接起来,但是无法弄清楚如何使用2个id来完成它,并且保持每个匹配中涉及的2个团队的信息不变。
这可能吗?或者我是否必须创建单独的查询?
答案 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