Mysql每月从三个表中获取数据
我有三个表格,其中有2006年至2017年的数据 我想每月从表中获取数据,就像我有用户、竞赛和电影表一样 我想获取每个月注册的用户的数据,那个月的比赛是什么,有多少sbmission参加了比赛 我试过了 但不是为我工作 用户表 胶片台 比赛桌 我想要 2006年12月|-countusers |当月比赛名称| Films提交比赛|Mysql每月从三个表中获取数据,mysql,database,Mysql,Database,我有三个表格,其中有2006年至2017年的数据 我想每月从表中获取数据,就像我有用户、竞赛和电影表一样 我想获取每个月注册的用户的数据,那个月的比赛是什么,有多少sbmission参加了比赛 我试过了 但不是为我工作 用户表 胶片台 比赛桌 我想要 2006年12月|-countusers |当月比赛名称| Films提交比赛| 也许这些查询可以帮助您……对于查询相关的问题,您必须发布表定义,示例数据集和示例输出。共享您的表结构。@Nic3500我已更新了答案。@addy我已更新了答案用户表和
也许这些查询可以帮助您……对于查询相关的问题,您必须发布表定义,示例数据集和示例输出。共享您的表结构。@Nic3500我已更新了答案。@addy我已更新了答案用户表和胶片表之间是否存在您未在此处定义的任何关系。我正在一个查询中查找某些内容。解释您想要的内容?通过修改一点,我使用了以下选择ID,日期\u格式f.DATE\u创建,%Y-%m为'\u月',从用户中选择COUNT作为t组按竞赛id用户,计数为影片,从竞赛中选择c.name作为c,其中c.contest\u id=f.contestid作为电影中的竞赛作为f组按_月选择竞赛id,日期格式f.DATE\u创建,%Y-%m作为'\u月',从用户中选择COUNT*,%Y-%m=日期格式f.DATE\u创建,%Y-%m用户,计数*为电影,从竞赛中选择c.name作为c,其中c.contest\u id=f.contestid作为竞赛,从电影中选择c.name作为f组,按竞赛id,日期格式f.DATE\u创建,%Y-%m;检查一下
SELECT DATE_FORMAT(t.user_regdate, "%Y-%m") AS "_Month", COUNT(*)
FROM users as t
GROUP BY _Month,
SELECT COUNT(*) as films , (select c.name from contest as c where c.contest_id =f.contestid) as contest
FROM film as f GROUP BY contestid
----------------------------------
|user_id | user_regdate| username|
----------------------------------
|5135 | 1164697208 | test |
----------------------------------
-------------------------------------------------------------
|film_id | date_created | title| contestid | User_id |
----------------------------------
|5135 | 2017-09-23 00:45:26| test | 1 | 5135 |
--------------------------------------------------------------
--------------------------
|contest_id | name |
--------------------------
|5135 | First Contest|
--------------------------
#For per month registered user count
select DATE_FORMAT(t.user_regdate, "%Y-%m") AS '_Month', COUNT(*) from users group by DATE_FORMAT(t.user_regdate, "%Y-%m");
# per contest film count not used month there
SELECT contestid,COUNT(*) as films , (select c.name from contest as c where c.contest_id =f.contestid) as contest
FROM film as f GROUP BY contestid;
# per contest film count with month
SELECT contestid,COUNT(*) as films ,DATE_FORMAT(t.date_created, "%Y-%m") AS '_Month', (select c.name from contest as c where c.contest_id =f.contestid) as contest
FROM film as f GROUP BY contestid,DATE_FORMAT(t.date_created, "%Y-%m");
# per User film count total
SELECT user_id,COUNT(*) as films , (select c.username from user_id as c where c.user_id =f.user_id) as UserName
FROM film as f GROUP BY user_id;
# per User film count in month
SELECT user_id,COUNT(*) as films,DATE_FORMAT(t.date_created, "%Y-%m") AS '_Month' , (select c.username from user_id as c where c.user_id =f.user_id) as UserName
FROM film as f GROUP BY user_id,DATE_FORMAT(t.date_created, "%Y-%m");