0
我想操作一个表,但迄今为止我发现的唯一解决方案是首先创建一些表并将它们连接在一起以获得所需的结果。避免创建临时表或永久表
我试图避免创建表并将它们放在我的MySQL查询结束,这btw,我在phpmyadmin页面上运行。
以下是数据:我有一个包含user_id,columnA_unixtime,columnB_unixtime的表 - 这意味着对于每个用户,在数据库中存在两个用于两个不同事件的unix_time。
user_id eventA_join eventB_join 1 1321652009 1321652009 2 0 1321652257 3 0 1321668650 4 1321669261 0
我想要的是一张表格,显示每天有多少用户加入了这两个事件。像这样(只是一个示例)的东西
day eventA eventB 11/18/11 3 2 11/19/11 11 8 11/20/11 6 3 11/21/11 17 11
这里是我使用至今代码:
CREATE TABLE table1(
day VARCHAR(256),
eventA_count INT);
INSERT INTO table1 (day, eventA_count)
(SELECT DATE(FROM_UNIXTIME('eventA_join')) AS 'day', COUNT('user_id') AS 'eventA_count'
FROM org_table
WHERE 'eventA_join' > 0
GROUP BY day);
CREATE TABLE table2(
day VARCHAR(256),
eventB_count INT);
INSERT INTO table2 (day, eventB_count)
(SELECT DATE(FROM_UNIXTIME('eventB_join')) AS 'day', COUNT('user_id') AS 'eventB_count'
FROM org_table
WHERE 'eventB_join' > 0
GROUP BY day);
SELECT t.day, t1.eventA_count, t2.eventB_count FROM
(SELECT DISTINCT day FROM table1
UNION
SELECT DISTINCT day FROM table2) t
LEFT JOIN table1 t1
ON t.day = t1.day
LEFT JOIN table2 t2
ON t.day = t2.day
DROP table2;
DROP table1;
至于我想我不能在phpMyAdmin使用表变量和没有我可能会使用模板表,因为当我尝试将它们连接在一起时,无法多次引用模板表(错误#10327无法重新打开临时表)。
有没有反正我避免创建表,但获得我在找什么?有什么想法吗?
编辑:两个表都从'org_table'获取数据,现在已经在代码中进行了更正。
是的。这效果很好,并向我展示了如何进行两个选择的聚合。谢谢@戈登 – AliKH 2012-08-09 18:12:10