球员
和
队
随着1-∞关系(玩家组队):你如何计算每支球队有多少球员?
失败的尝试:
SELECT team.teamid, (SELECT COUNT(player.team) FROM player)
FROM team
LEFT JOIN player ON player.team = team.teamid
球员
和
队
随着1-∞关系(玩家组队):你如何计算每支球队有多少球员?
失败的尝试:
SELECT team.teamid, (SELECT COUNT(player.team) FROM player)
FROM team
LEFT JOIN player ON player.team = team.teamid
尝试
SELECT t.teamid, COUNT(p.team) player_count
FROM team t LEFT JOIN
player p ON p.team = t.teamid
GROUP BY t.teamid
它将给正确的结果事件,如果有的球队没有球员分配。请参阅sqlfiddle(团队3没有玩家)。
请通过添加适当的标记(Oracle,SQL Server,MySQL等)来指定您要定向的RDBMS。可能会有利用不被普遍支持的语言或产品功能的答案。此外,通过使用特定的RDBMS标记它,您的问题可能会从更适合回答的人那里得到关注。 – Taryn 2013-03-19 17:34:52
哦,当然。它的MySQL:在这种情况下,假设SQL是如此通用,以至于它没有区别 – Stumbler 2013-03-19 17:45:35
它可能是直截了当的sql,但您应该始终指定您正在使用的rdbms。 :) – Taryn 2013-03-19 17:48:31