• ベストアンサー

どのテーブルのどのカラム???助けて下さい

会社に入社したばかりなのですが、プログラミングをしています。 で質問なのですが データベースのselect文で ある名称を取ってこないといけないときに どこのテーブルとどこのテーブルのどのカラムとどのカラムが 等しいときの名称を取ってくる様なselect文が作成できません テーブル設計書のカラム名を見ただけではわかりません こういった場合はどうすればいいのでしょうか 設計書とかにどのカラムが等しいときとか どのテーブルのどの名称とか普通そういう資料があるのでしょうか select文の構文は判ってもテーブルの仕様みたいなのがわからないので 対応できません 全然わかりません。助けてください

質問者が選んだベストアンサー

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 普通(?)はテーブル設計書にリレーション構成図みたいなものがあってテーブル同士の繋がりがわかる資料があります。 >テーブル設計書のカラム名を見ただけではわかりません >こういった場合はどうすればいいのでしょうか これはテーブルを設計した人に聞くしか無いです。 テーブルAに商品コード,テーブルBに商品名があるような場合はテーブルBにも商品コードのカラムがあるはずですのでそれを結合すれば良いと想像することは出来ますが。 あとはプライマリーキーになってる項目とか。資料が無い限りは予想でしかわかりません。 さすがにどのようなテーブル設計になってるかわかりかねますので、先輩に聞いてくださいとしか回答できません。

関連するQ&A

  • カラムをコピーして、新規カラムを作成したい

    既にあるカラムをコピーして、新たなカラムを作成したいのですが、うまくいきません。 どうしたらいいでしょうか? INSERT INTO `rtable`.`3_column` SELECT * FROM `rtable`.`2_column` 実行すると、下記エラーになります。 #1142 - INSERT command denied to user 'DBユーザー名'@'localhost' for table '3_column' 通常のINSERTなら出来るのですが、この場合のINSERTは、何か特別な実行権限になるのでしょうか? 環境:レンタルサーバ ちなみに、テーブルをコピーして、新規テーブル作成するのは、下記で出来たのですが、 「テーブルコピー」と「カラムコピー」では、何が違うのでしょうか? INSERT INTO `データベース名`.`newtable` SELECT * FROM `データベース名`.`oldtable` ;

    • ベストアンサー
    • MySQL
  • カラム名の出力

    データベース:ORACLE 使用ソフト:sql/plus select文でテーブルのカラム名のみを出力したいのです。 教えてください。

  • コラム名でテーブルを検索できますか?

    SQL & ORACLE初心者です。最近、セレクト文を使って、テーブル内のデータを取り出すことができるようになりましたが、逆にコラム名からテーブルを検索することはできるでしょうか。 例えば、TABLE_A内のコラムの中にCOLUMN_Aという名前のコラムがあるとして、このコラムが他のテーブルでも使われているかどうか、いるとしたらどのテーブルかを知りたいのです。また、COLUMN_Aと別のCOLUMN_B(それぞれが単独で記載されているテーブル名はわかっているとします)が一緒にある一つのテーブルで使われているかどうか、またそのテーブル名を知りたいときには、どのようなSQLを書けばよいでしょうか。 DBAやその他DBを構築するための知識をお持ちの方、ご回答をお待ちしています。

  • 【MySQL】1対1でテーブルをあえて分ける

    mysqlを使用してデータベースを作成しているのですが データベースでテーブルを分けるときって 【アカウントテーブル】 ID アカウント 名 アカウント パスワード 名前 住所 電話番号 職業 【職業テーブル】 職業ID 職業名 というような1対多というのはよく組むとおもうんですが 下記のような 【アカウント情報テーブル(アカウント情報)】 アカウントID アカウント 名 アカウント パスワード 【アカウント情報テーブル(プロフィール情報)】 アカウントID 名前 住所 電話番号 職業 1対1の関係でテーブルをジャンル(エンティティ)ごとに複数にわけて あとでリレーションして一個にまとめるというのはデータベース的にあまりよろしくないのでしょうか? 何故、こんなことしたいかというと、1テーブルあたりのカラム数がかなり多くなってくると PHPでデータベースを書き込んだり呼び出したりする時に毎度多くのカラムを取り扱わなければならず SELECTで、カラムを一個一個選んで行かないといけません。 しかし、取り扱いたいカラムは大抵の場合あるジャンルだけなので リレーションするかしないかで、あるジャンルのデータだけを取り扱えれば 効率がよくなるのでは? というのがあります。 また、視覚的にカラムの把握もしやすくなります。 この1対1テーブルは、DB設計的にどうなでしょうか?

    • ベストアンサー
    • MySQL
  • コラムの値からコラム・テーブルを検索

    プライマリキーが様々なテーブルで別の名前で利用されていると、テーブル同士の関連の全てが把握できずに困っています。以前にコラム名からテーブルを検索する方法を質問したのですが、私が扱っているデータベースでは、プライマリキーがシステムの別の場所で少しだけ異なる名前で利用されていることが多いので、その方法では把握できない関連が出てきます。 具体的には、EMPLOYEES__KEYというEMPLOYEESテーブルのプライマリキーがPERSONALIZE_EMPOYEESというテーブルでPSNLZ_EMP__KEYという名前で使われている状況を考えていただきたいと思います。PSNLZ_EMP__KEYのコラムのレコードは全てEMPLOYEES__KEY内のデータからとられているとします。 以前にselect TABLE_NAME from USER_TAB_COLUMNS where COLUMN_NAME = 'EMPLOYEES__KEY' というSQLで特定のコラムを使っているテーブルを全てリストアップできると教えていただいたのですが、今回のケースでは、同じような内容のコラムなのですが名前が異なるため上記のSQLでは検索できないテーブルがある場合、それをどうやってとってきたらよいのかということです。 コラムの値にtaro, jiro, hanakoなどのようにテーブルまたはシステム内でユニークな値が指定されている場合、コラムの値を指定し、「その値が使われているコラム・テーブルを列挙せよ」というような命令を与えればよいのだということまでは分かりますが、どのようにSQLを書けば良いか教えてください。

  • WHERE カラム名 <> ''の意味

    $result = $db->query("SELECT カラム名 FROM テーブル名 WHERE カラム名 <> ''"); PHPでSQL文を作成しているサンプルがあるのですが、「WHERE カラム名 <> ''」の意味が分かりません。カンマ二つで空文字? これはどういう意味でしょうか? また、<>は何と読むのでしょうか?(検索したいので)

    • ベストアンサー
    • MySQL
  • テーブルのカラムの属性を変えるには

    Interbaseでデータベースのあるテーブルのカラム(項目)の属性を xxx CHAR(10) CHARACTER SET SJIS_0208から xxx CHAR(20) CHARACTER SET SJIS_0208に変更させるにはどのようなSQL文を書いたらいいのでしょう? 尚、テーブルにはもうデータが入っているので、dropはしたくありません。 宜しくお願いします。

  • カラム名について。

    忙しいところ申し訳ありません。 ● 使ってるソフト ORACLE SQLplus <状態> データベースについての質問なんですが、 1.カラム名を日本語してあります。 2.select文コマンドで入力したとき、ORACLE SQLplus でカラム名が表示されません。 データは取れているのですが、日本語にしているとカラム名が表示されないということが、あるのでしょうか?

  • 複数のテーブルからデータを取得したい

    1つのテーブルから重複したデータを取り除いて表示するときに使う 【select distinct カラム名 from テーブル名;】 がありますよね。 それと同じようなことを複数のテーブルをまたいで行いたいのですがうまくいきません。 ちなみに両方のテーブルのカラム名は同じです。 【select distinct カラム名 from テーブル1 union select distinct カラム名 from テーブル2;】 としても重複を取り除いた後にテーブルを結合してるので結果的に両テーブルの重複した値を取り除くことができず。 そこで 【select distinct T1.カラム名, T2.カラム名 from テーブル1 T1. テーブル2 T2;】 としてみたのですが、クエリを実行中のまま反応がないので悩んでます。 ちなみに2つのテーブルのデータはそれぞれ2万件ほどです。 こういう時どういうsql文を組むのが正しいのでしょうか?

    • ベストアンサー
    • MySQL
  • 別テーブルのカラムを利用してソートしたい

    別テーブルのカラムを利用してソートしたい MySQLバージョン4.1.16を使用しています。 テーブル「tbl1」をテーブル「tbl2」のcountというカラムを利用して ソートしたいのですが、どのようなSQL文になるのでしょうか? 「tbl2」のidというカラムは外部キーで「tbl1」のidと関係しています。 テーブル「tbl1」 +------+---------+ |   id |  userid  | +------+---------+ |  1  | tanaka  | |  2  | sato   | +------+---------+ テーブル「tbl2」 +------+---------+ |   id |  count  | +------+---------+ |  1  |   10  | |  2  |   3   | +------+---------+ 次のような文かなと思ったのですが、エラーが返ってきます・・・ SELECT * FROM tbl1 ORDER BY (SELECT id FROM tbl2 ORDER BY count)

    • ベストアンサー
    • MySQL