[前][次][番号順一覧][スレッド一覧]

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/hippo2000http://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: 解決)期間で入力された情報からの日付毎の情報を取得したい