我正在尝试连接表;第一个是包含使用缩写名称进行比赛的球队的固定装置,第二个表格包含所有球队的详细信息,例如全名和主场。
我想加入这些表格并显示 2 x 球队的全名和主队的场地。
我下面的代码显示了我需要的一切,除了我需要显示的客队全名。
SELECT f.mid
, f.gid
, f.hteam
, f.ateam
, p.venue
, p.fname as hteam
, p.fname as ateam
FROM fixtures f
JOIN teams p
ON p.abbrev = f.hteam
WHERE mid = 1
表 1(夹具)
mid gid hteam ateam
1 1 WCE LIV
1 2 MUN ESS
表 2(团队)
fname abbrev venue
WEST COAST WCE OPTUS
LIVERPOOL LIV ANFIELD
MANCHESTER MUN OLD TRAFFORD
ESSENDON ESS WINDY HILL
答案 0 :(得分:1)
您必须将 fixtures
加入 teams
的 2 个副本:
SELECT f.mid, f.gid, f.hteam, f.ateam,
t1.venue, t1.fname hteam, t2.fname ateam
FROM fixtures f
JOIN teams t1 ON t1.abbrev = f.hteam
JOIN teams t2 ON t2.abbrev = f.ateam
WHERE f.mid = 1
答案 1 :(得分:1)
您应该向 teams
添加一个加入,因为您需要两个团队的信息:
SELECT
f.mid,
f.gid,
f.hteam,
f.ateam,
p.venue,
p.fname as hteam,
a.fname as ateam
FROM fixtures f
JOIN teams p ON p.abbrev = f.hteam
JOIN teams a On a.abbrev = f.ateam
WHERE mid = 1
答案 2 :(得分:-1)
您可以使用 SELECT
语句中的子查询获取客队的全名
SELECT f.mid, f.gid, f.hteam, f.ateam, p.venue, p.fname as hteam,
(SELECT fname FROM teams WHERE abbrev = f.ateam) as ateam
FROM fixtures f
JOIN teams p ON p.abbrev = f.hteam
WHERE mid = 1