mysql:8463
From: tani <tani <tanitani@xxxxxxxxxx>>
Date: Wed, 10 Dec 2003 01:22:11 +0900
Subject: [mysql 08463] Re: フィールドの値をフィールドにする
すみません。件名を付け忘れました。 On Wed, 10 Dec 2003 01:06:56 +0900, tani wrote: > はじめまして。大谷と申します。 > > 四苦八苦しながらSQLを書いているのですが、こんな方法で > 大丈夫なのかと心配になり、投稿いたします。 > > 仕事の工程管理をするアプリケーションを作成しています。 > ひとつの仕事にはいくつかの工程があり、かつ工程の数が > 固定ではないので別テーブルで工程を管理することにしました。 > > +-------------+ > |仕事テーブル | > |=============| > | 仕事ID | > |-------------| > | 仕事名 | A社web作成/B社web作成など > +-------------+ > > +-------------+ > |工程テーブル | > |=============| > | 仕事ID | > |-------------| > | 工程名 | 受注/製作/修正/納品など > |-------------| > | 期限 | 11.4/12.20など > +-------------+ > > --------問題点----------------------------------------- > 仕事のリストを表示する必要があります。 > リストにはいくつかの工程も表示する必要があります。 > リストは工程の項目でもソートが可能である必要があります。 > +-----------------------+ > |仕事名 |受注 |納品 | > +-----------------------+ > |A社web作成 |11.4 |12.1 | > +-----------------------+ > |B社web作成 |11.20|12.10| > +-----------------------+ > > --------自分なりの解決方法----------------------------- > フィールドの値にある情報(受注、納品)からそれぞれ > テーブルを作成。作成したテーブルを仕事テーブルと結合。 > > 上記を踏まえて以下のようなSQLを書きました。 > > > --------SQL-------------------------------------------- > #受注テンポラリテーブル作成 > CREATE temporary table T1 as > SELECT 仕事ID, 工程名 as "受注" > FROM 工程テーブル > WHERE 工程名 = "受注"; > > #インデックス作成 > ALTER table T1 add index (仕事ID); > > > #納品テンポラリテーブル作成 > CREATE temporary table T2 as > SELECT 仕事ID, 工程名 as "納品" > FROM 工程テーブル > WHERE 工程名 = "納品"; > > #インデックス作成 > ALTER table T2 add index (仕事ID); > > #仕事リスト作成 > > SELECT 仕事名,受注,納品 > FROM 仕事テーブル > LEFT JOIN T1 ON T1.仕事ID = 仕事テーブル.仕事ID > LEFT JOIN T2 ON T2.仕事ID = 仕事テーブル.仕事ID > > --------心配な点--------------------------------------- > ・SQLってこんな使い方をするのか(アプリケーションで > 解決すべき問題なのか) > ・そもそもデータベースの設計が悪いのか > ------------------------------------------------------- > > こんな説明で正しく伝わるかは不安ですが、皆様の意見を > いただければと思います。 > > よろしくお願いします。 > > -- > 大谷泰弘 >
8462 2003-12-10 01:06 [tani <tanitani@xxxxx] -> 8463 2003-12-10 01:22 ┣[tani <tanitani@xxxxx] Re: フィールドの値をフィールドにする 8465 2003-12-10 07:50 ┃┗["KAWAI,Takanori" <GC] 8473 2003-12-10 23:50 ┃ ┗[tani <tanitani@xxxxx] 8464 2003-12-10 01:25 ┗["T.P.S.Nakagawa" <ya] 8474 2003-12-11 00:05 ┣[tani <tanitani@xxxxx] Re: フィールドの値をフィールドにする 8487 2003-12-14 09:00 ┗[Kazuhiro Yoshida <mo] enum vs master table (Re: ) 8490 2003-12-14 09:22 ┣["T.P.S.Nakagawa" <ya] 8491 2003-12-15 04:36 ┗["zen kishimoto" <zen] MySQL レファレンス・マニュアルを日本語に翻訳出来る方を募集