【发布时间】:2021-01-14 23:39:30
【问题描述】:
SELECT Count(Teams.Name)
, Teams.TeamID
, Teams.Name
FROM Teams, Rosters
WHERE Rosters.TeamID = Teams.TeamID
到目前为止是我的查询。我希望它打印与 Teams.TeamID 对应的 Rosters.TeamID 的条目数。
【问题讨论】:
-
首先我建议你切换到 ANSI 连接。
-
谢谢@alexherm!
-
是否会出现
Rosters中的TeamID与Teams中的TeamID不匹配的情况?如果该数据库中有基本的 RI,计算Rosters中的DISTINCTTeamID值——不使用任何JOIN——应该就足够了???? -
@matigo 是的,有些团队在 Rosters 中没有 TeamID 值,但在 Teams 中却有
-
如果
Rosters中的TeamID值为NULL,它将被排除在COUNT(DISTINCT TeamID)之外。或者,可以加入一些条件来处理数据库设计决策COUNT(DISTINCT CASE WHEN IFNULL(TeamID, 0) > 0 THEN TeamID ELSE NULL END)...但随后您开始编写丑陋的代码只是为了保存索引查找。
标签: mysql sql phpmyadmin