簡體   English   中英

mysql-計算兩個表中的行

[英]mysql - count rows from two tables

所以我有這張桌子

登錄

+---------+------------+---------+
| 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   |
+---------+------------+---------+

file_downloads

+---------+------------+---------+
| 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 all group by 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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM