我有一个查询,但我想从另一个表中添加另一个字段...
这就是我现在使用的:
SELECT *
FROM tournaments t , tournament_participants t1
WHERE t.tournament_id = t1.tournament_id
ORDER BY t1.tournament_id, t1.team_id;
这很好用,但我也希望使用team_id
作为此查询的一部分从团队表中获取团队名称...
我不知道怎么做,有人可以帮忙吗?
答案 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
如果您需要任何不同的解决方案或进一步澄清,请告知我们:)