mysql:6417
From: "KAWAI,Takanori" <"KAWAI,Takanori" <GCD00051@xxxxxxxxxx>>
Date: Fri, 11 Oct 2002 14:15:15 +0900
Subject: [mysql 06417] Re: 期間で入力された情報からの日付毎の情報を取得したい
川合孝典です。 ----- Original Message ----- From: "Hidenori HAMANO" <hamano@xxxxxxxxxx> To: <ml@xxxxxxxxxx> Sent: Friday, October 11, 2002 12:49 PM Subject: [mysql 06412] Re: 期間で入力された情報からの日付毎の情報を取得した い > 浜野です。 (中略) > 単一の日付を指定して、その日付についてのみ検索結果を取得する > だけであれば、いわさきさんの仰られるような条件で探すだけで問題 > なくできるのはわかっています。 > > ただ、これを上記のように、たとえば2002-10-04〜2002-10-07のような > 期間についてまとめて取得する、ということをMySQL側だけでできないか、 > と考えた次第です。 > > これについても、phpなどで、forループなどでまわして取得すれば > 取得はできることはわかっておりますが、phpを用いずに、MySQL側 > のみでレコードセットとして取得するような形で行いたいと考えて > おります。 下記のように日付の入ったテーブルを別途用意して、外部結合させて みては? #どうも一日毎の日付を生成するうまい方法が思い浮かびませんが #一度、繰り返して生成してしまえばいいっていえば、それだけですが [mysqlでのスクリプト] drop table tkikan; drop table tdt; CREATE TABLE tkikan( start DATE, end DATE, data int ); CREATE TABLE tdt( dt DATE ); insert into tkikan values ('2002-10-07', '2002-10-10', 1), ('2002-10-01', '2002-10-04', 1), ('2002-09-25', '2002-10-05', 1), ('2002-09-18', '2002-09-20', 1); insert into tdt values ('2002-10-01'), ('2002-10-02'), ('2002-10-03'), ('2002-10-04'), ('2002-10-05'), ('2002-10-06'), ('2002-10-07'), ('2002-10-08'), ('2002-10-09'), ('2002-10-10'); select distinct tdt.dt, tkikan.data from tdt left join tkikan on (tdt.dt between tkikan.start and tkikan.end) where tdt.dt between '2002-10-04' and '2002-10-07'; [実行結果] mysql> select distinct tdt.dt, tkikan.data -> from tdt left join tkikan -> on (tdt.dt between tkikan.start and tkikan.end) -> where tdt.dt between -> '2002-10-04' and '2002-10-07'; +------------+------+ | dt | data | +------------+------+ | 2002-10-04 | 1 | | 2002-10-05 | 1 | | 2002-10-06 | NULL | | 2002-10-07 | 1 | +------------+------+ 4 rows in set (0.00 sec) =================================================== 川合 孝典 (Hippo2000) DBI日本語メーリングリスト管理人、Kansai.pm所属 kwitknr@xxxxxxxxxx GCD00051@xxxxxxxxxx http://member.nifty.ne.jp/hippo2000、http://www.hippo2000.info/ perldocの日本語化ならperldocjp http://sourceforge.jp/projects/perldocjp ===================================================
6409 2002-10-11 11:18 [Hidenori HAMANO <ham] 期間で入力された情報からの日付毎の情報を取得したい 6410 2002-10-11 11:46 ┣[IWASAKI Dai <dai@xxx] 6412 2002-10-11 12:49 ┃┗[Hidenori HAMANO <ham] 6413 2002-10-11 13:15 ┃ ┣[HARADA Nobuyuki <har] 6415 2002-10-11 14:11 ┃ ┃┗[Hidenori HAMANO <ham] 6416 2002-10-11 14:37 ┃ ┃ ┣[IWASAKI Dai <dai@xxx] 6418 2002-10-11 15:36 ┃ ┃ ┣[HARADA Nobuyuki <har] 6419 2002-10-11 16:00 ┃ ┃ ┗[<enim2@xxxxxxxxxx> ] 6414 2002-10-11 13:33 ┃ ┣[IWASAKI Dai <dai@xxx] -> 6417 2002-10-11 14:15 ┃ ┗["KAWAI,Takanori" <GC] 6420 2002-10-11 16:27 ┗[Hidenori HAMANO <ham] Re: 解決)期間で入力された情報からの日付毎の情報を取得したい