我有一个查询,但我想从另一个表中添加另一个字段...
这就是我现在使用的:
SELECT *
FROM tournaments t , tournament_participants t1
WHERE t.tournament_id = t1.tournament_id
ORDER BY t1.tournament_id, t1.team_id;
这工作正常,但我也想使用team_id
作为此查询的一部分从团队表中获取团队名称......
我不知道该怎么做,有人可以帮忙吗?
只需使用连接:
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
我不知道你有什么样的表模式。以下查询基于许多假设。所以我可能对你真正需要的东西有误。请看一下。
询问:
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
如果您需要任何不同的解决方案或进一步澄清,请告诉我们:)
尝试这个:
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;