mysql:7877
From: Shinya Kawaji <Shinya Kawaji <kawaji@xxxxxxxxxx>>
Date: Thu, 05 Jun 2003 20:30:59 +0900
Subject: [mysql 07877] Re: データ取得方法について
かわじ、です。 余計なことをいくつか書いていますが、結論は後半の方にあります。 > create table count_tbl( > c_id bigint(20) unsigned not null auto_increment, > c_media_id bigint(20) unsigned not null default '0', > c_date_id bigint(20) unsigned not null default '0', > c_num bigint(20) unsigned not null default '0', > primary key(count_id) > ) type=myisam; きっと primary key は primary key(c_id) でしょうね(フィールド名が間違っている)。 > insert into media_tb values(1,'zzz','コードなし'); > insert into media_tb values(2,'aaa','テスト広告'); これは insert into media_tbl values(1,'zzz','コードなし'); insert into media_tbl values(2,'aaa','テスト広告'); でしょう(テーブル名が間違っている)。 > 結果的に、過去ログにあります、 > 「[mysql 06807] Re: 日付型の条件検索について」と、 > 同様な出力を行いたいのですが、データを取り出す事すら出来ません。 多少面倒でも、「期待する出力結果」を作成していただく方が、 答える方もわざわざ「質問内容を解釈」しなくてもいいのですが、 それはともかく、以下のような結果の意味でしたら、 +------------+------------+------------+------------+------------+ | media_code | media_name | 2003-05-01 | 2003-05-02 | 2003-05-03 | +------------+------------+------------+------------+------------+ | zzz | コードなし | 13 | 1 | 0 | +------------+------------+------------+------------+------------+ | aaa | テスト広告 | 7 | 7 | 2 | +------------+------------+------------+------------+------------+ 以下のような SQL でどうでしょう?(効率良いかは分かりませんが) select media_code, media_name, sum(if(date_name='2003-05-01',c_num,0)) as `2003-05-01`, sum(if(date_name='2003-05-02',c_num,0)) as `2003-05-02`, sum(if(date_name='2003-05-03',c_num,0)) as `2003-05-03` from media_tbl left join count_tbl on media_tbl.media_id = count_tbl.c_media_id left join date_tbl on count_tbl.c_date_id = date_tbl.date_id group by media_tbl.media_id order by media_tbl.media_id ;
7876 2003-06-05 19:48 [<lav@xxxxxxxxxx> ] データ取得方法について -> 7877 2003-06-05 20:30 ┗[Shinya Kawaji <kawaj]