mysql:8906
From: "infoweb" <"infoweb" <fwkn8598@xxxxxxxxxx>>
Date: Fri, 5 Mar 2004 15:33:16 +0900
Subject: [mysql 08906] 日付検索
スズキと申します。現在日付による検索について悩んでいます。過去ログなどで検索
しましたが
未だ良い方法が見つけられず困っています。皆さんの知恵を拝借できれば大変ありが
たいです。
顧客テーブルとレポートテーブルがあります。
顧客テーブルには
顧客番号 顧客名 住所
----------+---------+-------+
1 | ああああ | 東京 |
----------+---------+-------+
2 | いいいい | 埼玉 |
----------+---------+-------+
3 | ううううう | 千葉 |
----------+---------+-------+
4 | ええええ | 大阪 |
-----------------------------
レポートテーブルには
顧客番号 内容 日付
----------+---------+--------------+
1 | etc | 2004-01-15 |
----------+---------+--------------+
2 | etc | 2003-11-20 |
----------+---------+--------------+
3 | etc | 2003-12-01 |
----------+---------+--------------+
1 | etc | 2003-12-24 |
----------+---------+--------------+
4 | etc | 2004-01-01 |
----------+---------+--------------+
4 | etc | 2003-11-20 |
----------+---------+--------------+
2 | etc | 2003-12-20 |
------------------------------------
3 | etc | 2003-01-20 |
------------------------------------
などと入っています。
やりたいことは本日より過去2ヶ月以内にレポートの登録がある顧客以外の顧客番
号、または最新のレポート内容
を抽出することです。上の場合だと、顧客番号2と4が結果として得られる。
いろいろ試してみたのですがどれもしっくりいかず投稿した次第です。
1.過去2ヶ月以内に登録されてあるレポートの顧客番号をグループ化などをして抽
出し、配列に入れる。
2.レポートを日付に限らずグループ化し顧客番号を配列に入れる。
3.php上で配列を照らし合わせ1の配列に顧客番号があれば表示しない。
または顧客テーブルに日付フィールドを追加してレポートの登録があった場合顧客
テーブルの日付を更新する。
など、これは考えたほんの一例ですが1の場合レポートや顧客の数が増えれば増える
ほど・・・。2はテーブルを
いじらなければならない・・・なるべく既存の状態で行いたい。そしてできれば一つ
のsql文で結果を得たい。
そもそも一つのsql文で出来るのでしょうか?どうも良い方法が思いつきません。突
然でしかもぶしつけな書き方で
申し訳ありませんがよろしくお願いします。
環境
php4.0.6
MySQL 3.23.56-MAX
/***********************/
Ryo Suzuki
fwkn8598@xxxxxxxxxx
/***********************/
-> 8906 2004-03-05 15:33 ["infoweb" <fwkn8598@] 日付検索 8907 2004-03-05 16:10 ┣["山本 瑞己" <mizuki] 8908 2004-03-05 16:54 ┃┗["infoweb" <fwkn8598@] 8909 2004-03-05 17:59 ┣[ML account <ml@xxxxx] 8927 2004-03-08 15:58 ┗[<n.futami@xxxxxxxxxx]