テーブルを操作したいのですが、これまでに見つけた唯一の解決策は、最初にいくつかのテーブルを作成し、それらを結合して目的の結果にすることです。
テーブルを作成してMySQLクエリの最後にドロップするのを避けようとしていますが、phpmyadminページで実行しています。
データは次のとおりです。user_id、columnA_unixtime、columnB_unixtime を含む 1 つのテーブルがあります。つまり、ユーザーごとに、2 つの異なるイベント用にデータベースに 2 つの unix_time が格納されています。
user_id eventA_join eventB_join 1 1321652009 1321652009 2 0 1321652257 3 0 1321668650 4 1321669261 0
私が欲しいのは、毎日何人のユーザーが 2 つのイベントに参加したかを示す表です。こんな感じ(ほんの一例)
日 イベントA イベントB 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」からデータを取得しています。