- ベストアンサー
select文で複数のデータベースのタイトルを表示する方法
- データデータベースとタイトルデータベースという二つのデータベースがあり、select文で表にする際にdata1とdata2のタイトルにTitleDBの1,2の内容を表示したい場合、正しい記述方法は『select memberNo as '会員番号', memberName as '会員名', TitleDB.Title1 as 'タイトル1', TitleDB.Title2 as 'タイトル2' from dataDB, TitleDB』です。
- このように記述することで、data1のタイトルにTitleDBのTitle1の内容が表示され、data2のタイトルにTitleDBのTitle2の内容が表示されます。
- 実際のselect文では、カラム名にはバッククォート(`)ではなくシングルクォート(')を使用し、データベースのテーブル名とカラム名はドット(.)で結合させます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1回答者です。 何となく、やりたいことが分かりました。 TitleDBの内容をヘッダのように表示し、それ以降にDataDBの内容を表示したいということですね? UNIONを使う方法が、簡単だと思います。 (1)表定義&データ例 create table TitleDB (Title1 varchar(50), Title2 varchar(50)); create table DataDB (memberNo char(5), memberName varchar(20), data1 varchar(50), data2 varchar(50)); insert into TitleDB values('好きな食べ物','好きな飲み物'); insert into DataDB values('0001','田中','ばなな','コーラ'); insert into DataDB values('0002','鈴木','りんご','ビール'); (2)検索SQL例 select 0 as SortKey,'会員番号' as 会員番号,'会員名' as 会員名,Title1 as タイトル1,Title2 as タイトル2 from TitleDB union select 1 as SortKey,memberNo,memberName,data1,data2 from DataDB order by SortKey ; この検索により、1行目にタイトル情報、それ以降にデータが検索できます。 SortKeyというのは、タイトル→データの順序保証をするために加えています。
その他の回答 (1)
- chukenkenkou
- ベストアンサー率43% (833/1926)
「式 as 別名」は、列や式に別名を付けるものであって、ここに「表名.列名」は書けないし、書く意味がありません。 二つの表を結合する条件もないので、期待する検索結果は得られないと思いますよ? DataDB表とTitleDB表を関連付ける方法は、何なのでしょうか? data1列、data2列とTitle1列、Title2列には、それぞれ同じ値が入っているのですか? →そうなら、結合すること自体不要。 どのデータとどのタイトルを結合するのか、という情報が必要です。
補足
data1列、data2列はいわゆる『内容』が入っていまして Title1列、Title2列には、上記の内容に対する表題が入っています。 このデータは、自由項目という意味をもってまして、 Aさんの顧客管理データベースでは、ここに、 Title1列⇒備考 data1列⇒備考の内容 Title2⇒好きなゲーム data2⇒ドラクエ Bさんの顧客管理データベースでは、はここに Title1列⇒好きな食べ物 data1列⇒ばなな Title2⇒好きな飲み物 data2⇒コーラ AさんとBさんは別のデータベースになります。 Bさんのデータベースで表を作りたい時 ○データデータベース(DataDB) 会員番号|会員名|データ1|データ2 00001|田中|ばなな|コーラ 00002|鈴木|りんご|ビール ○タイトルデータベース(TitleDB) タイトル1|タイトル2 好きな食べ物|好きな飲み物 こういったデータベースになり、この『好きな食べ物』と『好きな飲み物』をタイトルとして使用して取得したいのです。 ※タイトルにしたい理由は ・取得したデータをプログラムで表としてそのまま貼り付けたい。 ・並べ替えを行なうときに 「order by '好きな食べ物'」としたい というわけなのです、どうすればいいのでしょうか? データベースの作りを変えないとだめですか?
お礼
ありがとうございました やってみまーす!