0

テーブルを操作したいのですが、これまでに見つけた唯一の解決策は、最初にいくつかのテーブルを作成し、それらを結合して目的の結果にすることです。

テーブルを作成して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」からデータを取得しています。

4

1 に答える 1