关联查询需求:RegisteredUsers关联Soldtickets统计用户售票总数
SQL 查询解决方案
可以使用 LEFT JOIN 结合聚合函数实现需求,以下是具体查询语句:
SELECT ru.*, COALESCE(COUNT(st.PlayerID), 0) AS TotalSoldTickets FROM RegisteredUsers ru LEFT JOIN SoldTickets st ON ru.Identifier = st.PlayerID GROUP BY ru.Identifier, -- 需补充RegisteredUsers表的其他主键字段,确保分组逻辑符合数据库规范 ru.[其他主键字段] ORDER BY ru.Identifier;
关键说明:
LEFT JOIN:确保RegisteredUsers的全量数据被保留,即使用户无售票记录也会出现在结果中COALESCE(COUNT(st.PlayerID), 0):统计每个用户的售票总数,无对应记录时返回0(COUNT(st.PlayerID)会忽略NULL值,COALESCE将可能出现的NULL转为0)GROUP BY:基于RegisteredUsers的唯一标识字段分组,保证每个用户仅返回一行统计结果
若你的数据库支持宽松分组规则(如特定配置下的MySQL),可简化为GROUP BY ru.*,但显式列出主键字段的写法兼容性更强。
内容的提问来源于stack exchange,提问作者Thomas Nichols
相关产品推荐
相关产品推荐

