Mysql 加入约会小组

Mysql 加入约会小组,mysql,sql,join,aggregate-functions,Mysql,Sql,Join,Aggregate Functions,我有三张桌子 表1 id date 1 1132123123 2 1232342341 etc 表2 id date 1 1132123123 2 1232342341 etc 表3 id date 1 1132123123 2 1232342341 etc 所有“日期”列都是unix时间戳 我正在尝试连接这3个表,并分别按以下分组计算每个表的总数: FROM_UNIXTIME(date, '%m-%d-%Y') 理想情况下,我希望得

我有三张桌子

表1

id   date
1    1132123123
2    1232342341

etc
表2

id   date
1    1132123123
2    1232342341

etc
表3

id   date
1    1132123123
2    1232342341

etc
所有“日期”列都是unix时间戳

我正在尝试连接这3个表,并分别按以下分组计算每个表的总数:

FROM_UNIXTIME(date, '%m-%d-%Y')
理想情况下,我希望得到以下结果:

formatteddate   t1count   t2count   t3count
04-12-2011      2         2         2
04-13-2011      1         2         3
注意:结果与示例数据不匹配,但我认为这是非常直接的

以下是我迄今为止所尝试的:

SELECT
  FROM_UNIXTIME(t1.date, '%m-%d-%Y') as t1date,
  FROM_UNIXTIME(t2.date, '%m-%d-%Y') as t2date,
  FROM_UNIXTIME(t3.date, '%m-%d-%Y') as t3date, 
  count(t1.id) as t1count,
  count(t2.id) as t2count,
  count(t3.id) as t3count
FROM
  t1,t2,t3
GROUP BY
  t1date

查询甚至没有加载。t3包含大量数据(100多万条记录)。t1和t2,没有那么多。

你在做卡瑟斯产品。使用联合。时间戳在任何一个表中都是唯一的吗?是的,每个表中的每一行的时间戳都是唯一的。+1,这正是我想的。只有我的版本看起来更符合ANSI标准(MySQL不是我的“本地”SQL方言)。谢谢。:)你的意思是像总和(tb=1的情况下,则1或0结束)这样的东西吗?此查询在5秒内加载,未编制索引。OMG小马回答根本没有加载:(谢谢!!不客气。只是出于好奇,你有多少记录?我有一个怪癖,总是尝试使用计数进行计数(如果可能的话),所以在这种情况下,我可能会使用类似于
计数(case tb WHEN 1 THEN 1 els NULL END)
,这远不如
总和简洁(tb=1)
select from_unixtime(date,'%m-%d-%Y') as d,
sum(tb=1) as tb1,
sum(tb=2) as tb2,
sum(tb=3) as tb3
from (
select date,1 as tb from t1
union all
select date,2 from t2
union all
select date,3 from t3) as t
group by d