• 締切済み

列を結合させて外部キーを設定する方法

AテーブルのAA列とBB列を結合させて 見かけ上CC列を作成し BテーブルのDD列を外部キーをはりたいのですが そういった事は可能でしょうか? イメージ的には以下のような感じです。 Aテーブル AA列 decimal (1,0)    DD列 decimal (3,0) 外部キー CC列(AA列+BB列)とDD列 Bテーブル DD列 decimal (4,0) 解り難くて申し訳ございませんがよろしくお願いします。

noname#8144
noname#8144

みんなの回答

  • tyurajima
  • ベストアンサー率28% (16/57)
回答No.1

こんなのでどうでしょう? SELECT A.AA列,A.BB列,B.DD列 FROM Aテーブル A, Bテーブル B WHERE A.AA列 * 1000 + A.BB列 = B.DD列; AA列とBB列を連結すればよろしいかと・・・

noname#8144
質問者

お礼

お答えいただきありがとうございました、 質問内容に誤りがあったのでいったん締め切らせていただきました。

noname#8144
質問者

補足

質問内容を見直したつもりだったのですが 言ってることがおかしかったですね、すいません。 Aテーブル XX列 decimal (1,0)    YY列 decimal (3,0) 外部キー(FOREIGN KEY) AのXY列(AのXX列+AのYY列)とBのZZ列 Bテーブル ZZ列 decimal (4,0) こんな感じのイメージです

関連するQ&A

  • 3テーブル外部結合方法について

    3つのテーブルを外部結合したいのですが・・・、 こんがらがってしまいました。 A,B,Cの3テーブルがあり、A,B,Cの順に外部結合 (LEFT OUTER JOIN)したいのですが、 A,BのテーブルについてはWhere句の条件指定が 必要です。 Select From (Select AA.a From A AA Where b = xxxx) BB Left Outer Join (Select CC.b From B CC Where c = eeee and BB.a = CC.b) On ???? こんな感じでつまづいてしまいました・・・

  • 外部キーの設定方法について

    外部キーの設定方法について テーブルCのカラムCについて、テーブルAのカラムA、またはテーブルBのカラムBにある値しか受け付けないように、外部キーの設定を行いたいのですが、方法が分かりません。 テーブルAのカラムAとテーブルBのカラムBとをUNION したビューを作成してみましたが、ビューにはプライマリィキーを設定することが出来なく、外部キーは作成できませんでした。 何か、回避策を教えてください。 よろしくお願いします。 データベースは、ANSI標準サポートのタイプとして、考えてください。

  • Excel2003で他の列のデータをドロップダウンリストに

    質問のし直しです。 下記の場合、B列でのドロップダウンリストに(aa bb cc dd ee)と表示させるには、どうしたら良いのでしょうか? A列  B列 bb     dd aa     ee bb     ee cc    dd aa bb 実際には文字列なのですが、1300行で、A列のデータは300個位在ります。 宜しくお願い致します。

  • 外部結合について

    こんばんは。 SQLでの外部結合について教えてください。(オラクルの場合です) データを取得しいテーブルが4つあったとします。 Aテーブルのキーは、「ユーザーID」と「名前」と「住所」だとします。 Bテーブルのキーは、「名前」と「郵便番号」とします。 Cテーブルのキーは、「名前」と「郵便番号」とします。 取得したいデータは、全てのテーブルに存在しています。 Aテーブルに対してBテーブルとCテーブルを外部結合したいと思っています。 Aテーブルには「ユーザーID」があります。 Bテーブルからは、「給料」データが取得したいのです。 Cテーブルからは、「年齢」データが取得したいのです。 B,Cのテーブルに条件に合致するものがなくても、AのユーザーIDだけは 表示したいと思っています。 自分なりに考えて色々試したのですが、うまく行かず構文でエラーになります。 どうしてもAテーブルに外部結合したいです。 SELECT  A.ユーザーID,  B.給料,  C.年齢 FROM  A,  B,  C WHERE  A.ユーザーID = ’XXXXX’,      A.名前 = ’AAAAAA’,      A.住所 = ’KKKKKKKKKKK’,      A.名前(+) = B.名前,      A.名前(+) = C.名前,      A.郵便番号(+) = B.郵便番号,      A.郵便番号(+) = C.郵便番号 このように考えたのですが,「すでに1つの表と外部結合されています」みたいに エラーがでてしまいます。 どのように修正すれば、よいのでしょうか? よろしくお願い致します。      ※全角になっているなどは、見やすくする為にやっています。

  • 正規化?の戻しについて

    お世話になってます。 データの結合SQLについて教えてください。 以下の2つのテーブルがあります。 <TBL1> KEY A B --- -- -- 111 A1 B1 222 A2 B2 333 A3 B3 <TBL2> KEY COL C --- --- -- 111 1 AA 111 2 BB 222 1 CC 222 2 DD 333 1 EE 333 2 FF 正規化?を行った結果このようになったようなのですが、運用では下記イメージで利用してます。 KEY A B C1 C2 --- -- -- -- -- 111 A1 B1 AA BB 222 A2 B2 CC DD 333 A3 B3 EE FF TBL1とTBL2から、このイメージを取り出すために前任者がPL/SQLの複雑なロジックで実現しているのですが、処理が遅い状態です。 SQLのみで実現できれば、もう少し早くなるのでは?と考えております。 いろいろ考えてみましたが実現方法が思いつかないため、お知恵をお貸しください。 TBL1は特に規則性もない普通のテーブルです。 TBL2は、TBL1のキーが必ず存在します。 COLは、キーごとに1,2が固定で設定されます。結合イメージのC1,C2項目に該当します。 TBL2の件数はTBL1件数*2になります。 以上、つたない説明ですが、よい手がありましたら、ご指摘お願いします。

  • 条件成立時に列Cの値を列Aにコピーしたい

    同一行の列Bの値が、ある値(後述例の場合、"○")と完全一致のとき、 列Cの値を列Aにコピーさせたいのですが、マクロでどのようにループを 組むか教えてください。 Excelのバージョンは2007です。 マクロ実行前 <列A>   <列B>   <列C> 項目A    項目B    項目C ああああ          AA いい     ○      BB ううう           CC ええええ   ○      DD お             EE マクロ実行後 <列A>   <列B>   <列C> 項目A    項目B    項目C ああああ          AA BB     ○      BB ううう           CC DD     ○      DD お             EE

  • MySQL区切った文字列で外部結合はできない?

    MySQLの外部結合について教えてください 「結合の対象となっているカラムの値が一致」は必須なのでしょうか? ■やりたいこと ・Aテーブルaカラム内にある「デリミタの先頭文字列」を抽出して、Bテーブルのidカラムと結合したい ■最終的にやりたいこと ・上記一致条件で、両テーブルデータをSELECTしたい ■試したこと ・「SELECT SUBSTRING_INDEX」で「デリミタの先頭文字列」を抽出できたのですが、そこで行き詰まりました ■質問 ・そもそもやろうとしていることが無謀なのでしょうか? ・テーブル構成を見直した方が良いのでしょうか?

    • ベストアンサー
    • MySQL
  • 外部結合で参照列が複数あるSQL

    テーブルA ID 依頼者  代理者 1 0001    0002 2 0001   0005 3 0004   0003 テーブルB 従業員ID 名前 0001   佐藤 0002   中村 0003   林 0004   高橋 0005   田中 このとき、テーブルAを素にして外部結合して 依頼者番号の欄には名前を入れるSQLを作りたいと思います。 外部結合をSQLで SELECT 依頼者,代理者 FROM テーブルA LEFT JOIN テーブルB ON テーブルA.依頼者 = テーブルB.従業員ID と行い、『依頼者』については、テーブルBから名前を引っ張ってこれたのですが、『代理者』列についても、テーブルBから名前を引っ張ってこれるようにしたいと思います。 色々試しましたが、分かりません。 お知恵をお貸しいただけると、嬉しいです。 どうぞ、よろしくお願いします。

    • 締切済み
    • PHP
  • 外部結合?

    SQLについてです。 テーブルA ID 価格 タイプ 01 1,000 A01 02 2,000 B02 テーブルB ID 名前 種別 01 test a 03 aiue b 上記のようなテーブルがあったとして テーブルAとテーブルBを外部結合し 紐づくレコードがあった場合、さらに 種別=a で検索を行いたいのですが 書き方がよくわかりません。 外部結合で検索し、紐づくレコードがあった場合に さらに検索条件を絞る場合には どう書いたらいいのですか? よろしくお願いします。

  • 多段外部結合はできる?

    mysqlにおいて、多段の外部結合はできるのか今模索しております。 例えば、A、B、Cと3つテーブルがあった場合に、 「Aに対してBを外部結合」 「Bに対してCを外部結合」 としたいのですが、どうやってもCテーブルの値が取得できず常にNULLになっている状態です。 例として、以下の条件で実行すると、Cテーブルの値が取得できません。 ---- (テーブル) A [id, name, b_id] ※b_idはB.idの外部キー B [id, name, c_id] ※c_idはC.idの外部キー C [id, name] (クエリ) select A.name, B.name, C.name from A left join B on (A.b_id = B.id) left join C on (B.c_id = C.id) ---- どうやったらうまく取得できますか?もしくはできないのでしょうか? ご存知の方、ご教授ください。

    • ベストアンサー
    • MySQL