好的,所以我正在完成我的作业,并且无法让Count功能正常工作。
我应该使用“一个查询列出所有拥有4个以上球员的球队(在球员表中)。包括team_id,team_name和球队的球员数量。”
这只是一个简单的NHL数据库,我们的老师弥补了这项任务。团队数据库中有18个团队,玩家数据库中有74个团队。
这就是我现在所写的:
SELECT teams.team_id, teams.team_name, COUNT(players.team_id) AS PlayerCount
FROM teams, players
GROUP BY teams.team_id, teams.team_name
HAVING COUNT(players.team_id) > 4;
当我跑步时,这是我得到的输出:
TEAM_ID TEAM_NAME PLAYERCOUNT
------- ----------------------------------- ----------------------
TBL Tampa Bay Lightening 74
BOS Bostong Bruins 74
SJS San Jose Sharks 74
NYI New York Islanders 74
MIN Minnesota Wild 74
DET Detroit Red Wings 74
NYR New York Rangers 74
PHL Philadelphia Flyers 74
BUF Buffalo Bruins 74
PIT Pittsburgh Penguins 74
DAL Dallas Stars 74
VAN Vancouver Canucks 74
WSH Washington Capitals 74
COL Colorado Avalanche 74
TOR Toronto Maple Leafs 74
CLB Columbus Blue Jackets 74
CHI Chicago Blackhawks 74
ATL Atlanta Thrashers 74
18 rows selected
我知道修复可能非常简单,但我在教科书中找不到任何类似的内容,而我获得的Google结果要么与我想做的事情不同或更复杂。
非常感谢任何帮助。
答案 0 :(得分:2)
你正在表之间进行笛卡尔联接。
SELECT teams.team_id, teams.team_name, COUNT(*) AS PlayerCount
FROM teams, players
WHERE teams.team_id = players.team_id
GROUP BY teams.team_id, teams.team_name
HAVING COUNT(*) > 4;