- 締切済み
列を結合させて外部キーを設定する方法
AテーブルのAA列とBB列を結合させて 見かけ上CC列を作成し BテーブルのDD列を外部キーをはりたいのですが そういった事は可能でしょうか? イメージ的には以下のような感じです。 Aテーブル AA列 decimal (1,0) DD列 decimal (3,0) 外部キー CC列(AA列+BB列)とDD列 Bテーブル DD列 decimal (4,0) 解り難くて申し訳ございませんがよろしくお願いします。
- SQL Server
- 回答数1
- ありがとう数2
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- tyurajima
- ベストアンサー率28% (16/57)
こんなのでどうでしょう? SELECT A.AA列,A.BB列,B.DD列 FROM Aテーブル A, Bテーブル B WHERE A.AA列 * 1000 + A.BB列 = B.DD列; AA列とBB列を連結すればよろしいかと・・・
関連する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になります。 以上、つたない説明ですが、よい手がありましたら、ご指摘お願いします。
- ベストアンサー
- Oracle
- 条件成立時に列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
- 多段外部結合はできる?
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
お礼
お答えいただきありがとうございました、 質問内容に誤りがあったのでいったん締め切らせていただきました。
補足
質問内容を見直したつもりだったのですが 言ってることがおかしかったですね、すいません。 Aテーブル XX列 decimal (1,0) YY列 decimal (3,0) 外部キー(FOREIGN KEY) AのXY列(AのXX列+AのYY列)とBのZZ列 Bテーブル ZZ列 decimal (4,0) こんな感じのイメージです