多个MySQL选择

时间:2012-11-26 12:53:28

标签: mysql sql select join

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

这就是我现在使用的:

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

这很好用,但我也希望使用team_id作为此查询的一部分从团队表中获取团队名称...

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

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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;

答案 2 :(得分: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

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