mysql - 计算两个表的行数

标签 mysql

所以我有这个表

登录

+---------+------------+---------+
| date_id | date_today | user_id |
+---------+------------+---------+
|    1    | 2017/03/19 |    16   |
|    2    | 2017/03/20 |    17   |
|    3    | 2017/03/20 |    12   |
|    4    | 2017/03/21 |    16   |
|    5    | 2017/03/22 |    10   |
|    6    | 2017/03/22 |    11   |
+---------+------------+---------+

文件下载

+---------+------------+---------+
| date_id | date_today | user_id |
+---------+------------+---------+
|    1    | 2017/03/20 |    17   |
|    2    | 2017/03/20 |    17   |
|    3    | 2017/03/20 |    12   |
|    4    | 2017/03/20 |    17   |
|    5    | 2017/03/20 |    12   |
|    6    | 2017/03/20 |    12   |
|    7    | 2017/03/20 |    12   |
|    8    | 2017/03/20 |    12   |
|    9    | 2017/03/22 |    10   |
|    10   | 2017/03/22 |    10   |
|    11   | 2017/03/22 |    11   |
+---------+------------+---------+

这是我想要的结果:

+------------+-----------+--------+
| date_today | login_num | dl_num |
+------------+---------+----------+
| 2017/03/19 |     1     |   0    |
| 2017/03/20 |     2     |   8    |
| 2017/03/21 |     1     |   0    |
| 2017/03/22 |     2     |   3    |
+------------+-----------+--------+

我对 mysql 还很陌生,所以任何帮助将不胜感激。谢谢你! :)

最佳答案

我认为最简单的方法是union allgroup by:

select date_today, sum(login) as logins, sum(dl) as dls
from ((select date_today, 1 as login, 0 as dl from log_in
      ) union all
      (select date_today, 0, 1 from file_downloads
      )
     ) lfd
group by date_today;

关于mysql - 计算两个表的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42966180/

相关文章:

mysql - 解决一个简单的 SQL 查询

php - 如何在 MySQL 表中存储数组值?

php - 消息为 'SQLSTATE[42S02]: Base table or view not found: 1932 Table ' bookstore.user 的“PDOException”在引擎中不存在

php - MySQL 中按费率排序

mysql - 用于产生所需输出的子查询选项

MySQL INSERT WHERE 变量不重复

phpMyAdmin 不根据外键导出数据库结构

php - Mysql中使用where和Like子句过滤数据

sql - 在 Microsoft SQL Server 2000 中模拟 MySQL LIMIT 子句

用于返回总排名的mysql查询