来自多个表的mysql count(*)

7 mysql select count

我有一个MYSQL数据库,其中包含我公司客户每天使用我们服务的数据.

数据库中的每个表表示一个24小时的时间段以及在该时间段内发生的所有客户事务.

我想计算几天内的总交易量

到目前为止,我有一个select语句执行以下操作

select 
  (
    select count(customer) from 2010Dec28 
    where customer='<customer name>'
  ) as t1,
  (
    select count(customer) from 2010Dec29 
    where customer='<customer name>'
  )as t2;`
Run Code Online (Sandbox Code Playgroud)

但这会将结果作为两个单独的计数返回

| t1   | t2    |
| 1438 | 16282 |
1 row n set (0.00 sec)`
Run Code Online (Sandbox Code Playgroud)

我的问题是如何在我的应用程序代码中生成这两个结果的总和而不必这样做.

Pau*_*sey 12

泰勒可能是对的,设计肯定是错的!

但它有可能..

select 
    sum(a.count)
from
    (select count(*) as count from table1
     union all
     select count(*) as count from table2) a
Run Code Online (Sandbox Code Playgroud)


Tyl*_*ves 10

修复数据库设计.除非您在数十亿行上进行某种海量数据存储,否则每天使用一张单独的表是非常不合适的.


Ric*_*iwi 5

只需将交叉联接换成直接sub + sub,如下所示。比建立任何工会或加盟要容易得多

select 
  (
    select count(customer) from 2010Dec28 
    where customer='<customer name>'
  ) + (
    select count(customer) from 2010Dec29 
    where customer='<customer name>'
  )
Run Code Online (Sandbox Code Playgroud)