gooサービスにログインしづらい事象について

データベース初心者です。よろしくお願いいたします。

今、次のようなデータ構造を考えています。

テーブル1
  データ番号(列1)  データ名(列2)
(行1)   0     温度
(行2)   1     湿度
(行3)   2     水位


テーブル2
     時刻(列1) データ0(列2) データ1(列3) データ3(列4)
(行1) 10:00      27     37      50
(行2) 11:00      28     36      40
(行3) 12:00      29     36      35
(行4) 13:00      31     35      32


ここで、12:00の湿度データを参照したいとき、
まず、テーブル1から湿度のデータ番号を参照し、さらに、テーブル2から
データ1の数値を取り出したいと思っています。つまり、2段階でデータを
取り出したいと思っているわけです。

例えば、12:00の湿度データは36ですが、これを1行のselect文で
書く方法がありますでしょうか?

ちなみに、使おうとしているのはMySQLです。

補足が必要であればご指摘下さい。補足いたします。

よろしくお願いいたします。

A 回答 (3件)

つまり、



    時刻 データ名称 データ
(行1)12:00 湿度  36

というような結果が返ってくる風にしたいのですね?
この目的だとテーブル構造の方が適してないと思うな。個人的には。テーブル2の方をこう変えたい。

テーブル2’
    時刻  データ番号 データ
(行1)10:00    0    27
(行2)10:00    1    37
(行3)10:00    2    50
  ・
  ・
  ・
(行n)12:00    1    36
  ・
  ・
  ・
(行z)13:00    2    32

この構造だと、

select 2'.時刻, 1.データ名称, 2'.データ from 1, 2' where 1.データ番号=2'.データ番号 and 2'.時刻=12:00

と一発だ。どうしてもあれなら、

select 2.時刻, 1.データ名称, 2.データ1 from 1, 2 where 1.データ番号=1 and 2.時刻=12:00

とすれば出てくるかも知れない(未検証)が、select句の中を動的に作成しなければならないなど、DBシステムとして保守しづらそう・・・・。
    • good
    • 0
この回答へのお礼

さっそくのご回答、ありがとうございます。
はじめはご指摘のような構造を考えたのですが、実は、本当のデータは、テーブル2の列に相当するデータ種別がかなり多く、すべてのデータに時刻が付くとなると、何だかえらく無駄が多いような気がして、何かいい方法があるのではないかと思い、質問した次第です。
ご指摘にあった「DBシステムとして保守しづらそう」というのはもっともだと思いました。保守のことは考えていませんでした。もう一度、考えてみたいと思います。ありがとうございました。

お礼日時:2005/09/08 00:14

> すべてのデータに時刻が付くとなると、何だかえらく無駄が多いような気がして



でしたら、「記録時間」テーブルのようなものを用意して、テーブル2(データテーブル)ではそのIDを記録する形にするというのはいかがでしょうか?
(更新処理がちょっと面倒になりますが)
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
ご指摘の点を考慮して、
テーブルの構造を再度検討します。

お礼日時:2005/09/08 16:59

「データ構造が不自然」は#1の回答と同様、第一感です。


たとえば

テーブル
     時刻      温度    湿度      水位
(行1) 10:00      27     37      50
(行2) 11:00      28     36      40
(行3) 12:00      29     36      35
(行4) 13:00      31     35      32

では拙いのでしょうか。あるいはデータ種別が多く、一回の観測でその一部しか観測しないのであれば

1.観測種別マスタ
2.観測記録(観測日時、観測者、etc.)
3.観測値(観測種別ID、観測記録ID、値)

のようなテーブル構造にするとか。
データの種別や観測システムに関する補足説明が欲しいです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す


おすすめ情報