mysql - MySQL在多个子查询中查找总数
问题描述
我们有一个应用程序可以帮助人们找到其他人打篮球。我们与该市的一些篮球场相关联。所以我的任务是找出“在 XXField (field_id = 460) 打球的球员全年打篮球的次数”
我不确定我是否非常了解该做什么。这些是我正在处理的表
Game_users 表
game_id | user_id | bill_id | created_at | deleted_at
23455 | 3455 | 234 | 2019-02-06 03:16:40 | null
45678 | 6790 | 877 | 2020-02-09 07:26:34 | null
87666 | 2546 | 899 | 2020-04-20 06:06:06 | null
12312 | 1231 | 989 | 2019-02-22 09:22:31 | null
游戏桌(包括篮球场的 id)
id | field_id | game_status| created_at | deleted_at
23455| 460 | Completed | 2019-02-06 03:16:40 | null
23455| 345 | Completed | 2020-09-03 05:45:33 | null
87666| 460 | Completed | 2020-12-12 08:34:22 | null
87666| 212 | Completed | 2020-11-23 09:54:12 | null
我知道我必须加入两个表才能获得字段 ID 和在那里玩的玩家。但是我怎么也能得到他们今年打高尔夫球的总次数呢?包括他们在460玩的那些。
对不起,这令人困惑,这对我来说也很困惑。
我的预期结果是这样的
User_Id | Total Games | FieldXX Number of Games
1234 | 34 | 12
解决方案
您可以使用子查询 inIN
子句,GROUP BY
如下所示:
SELECT GU.USER_ID,
COUNT(1)
FROM GAME_USERS AS GU
WHERE GU.GAME_ID IN (SELECT ID FROM GAMES AS G WHERE G.FIELD_ID = 460)
AND .. CONDITION ON created_at FOR WHOLE YEAR ACCORDING TO YOUR REQUIREMENT
GROUP BY GU.USER_ID
推荐阅读
- ruby-on-rails - 如何为 Rails 控制器中的默认 RESTful 操作设置 before_action?
- typescript - 柯里化函数的 ReturnType
- reactjs - 为什么单击链接时我的 React 应用程序没有导航到页面?
- python - 使用卷在 Docker 中运行 Flask 导致重新加载时出错
- javascript - 正则表达式测试表达式
- templates - 在 Go 模板中按名称访问结构成员
- facebook - og:url 不代表输入的 URL。仔细检查提供的值后,您可以放心地忽略此消息
- c# - 如何从 C# 中单独文件夹中的文件导入命名空间
- javascript - 着色器练习册
- c# - AForge - VideoCapabilities 列表不完整 - 高帧率