1

我有一个查询,但我想从另一个表中添加另一个字段...

这就是我现在使用的:

SELECT * 
FROM tournaments t , tournament_participants t1 
WHERE t.tournament_id = t1.tournament_id 
ORDER BY t1.tournament_id, t1.team_id;

这工作正常,但我也想使用team_id作为此查询的一部分从团队表中获取团队名称......

我不知道该怎么做,有人可以帮忙吗?

4

3 回答 3

0

只需使用连接:

SELECT * FROM tournaments AS t 
LEFT JOIN tournament_partecipants AS tp ON t.tournament_id = tp.tournament_id 
LEFT JOIN team ON tp.team_id = team.team_id 
ORDER BY tp.tournament_id, tp.team_id
于 2012-11-26T12:56:55.037 回答
0

我不知道你有什么样的表模式。以下查询基于许多假设。所以我可能对你真正需要的东西有误。请看一下。

询问:

select p.pid, p.pname, t.id as teamID
from participants p
left join tournament tt
on p.ttnid = tt.tnid
inner join team t
on tt.tnid = t.ttid

结果:

PID     PNAME   TEAMID
1       john    10
2       tim     10
3       alex    20
4       ron     20
5       kate    30

参考:SQLFIDDLE

如果您需要任何不同的解决方案或进一步澄清,请告诉我们:)

于 2012-11-26T13:20:01.967 回答
0

尝试这个:

SELECT t.*, t1.*, t2.name 
FROM tournaments t 
INNER JOIN tournament_participants t1 ON t.tournament_id = t1.tournament_id
INNER JOIN teams t2 ON t1.team_id  = t2.team_id 
ORDER BY t1.tournament_id, t1.team_id;
于 2012-11-26T12:57:54.720 回答