• 締切済み

2つのテーブルを結合してデータ抽出時に

2つのテーブルからデータを取得したいです。 結合し、データの取得を試みてますが、キーに対して空白の行が取得できません。どうしたらよいでしょうか?助けてください。 Aテーブル   Bテーブル 1 100 A       1 みかん 2 150 B       2 りんご 4 200 D       3 すいか 5 300 E       4 なし 6 500 F       6 高級なし 上記のようなテーブルをくっつける時の話で求める値は以下なんですが… Cテーブル 1  100  A  みかん 2  150  B  りんご 3       すいか 4  200  D  なし 5  300  E 6  500  F  高級なし どちらかがデータなしでもキー(例の場合は1とかの数字です)があるもの は表示したいです。 どなたかわかるかた教えてください。お願いします。 ちなみに使用しているのはoracleです。

みんなの回答

回答No.2

#1です。 すみません、Oracleでは完全外部結合は使用できないみたいですね。 LEFT OUTER JOIN と RIGHT OUTER JOIN を UNION で組み合わせるようです。

goo-k-i
質問者

お礼

ご回答ありがとうございます。 FULL OUTER は試してみましたが、どうやらSQLSERVERじゃなきゃだめでした… UNIONしてまずは仮想の1つの表をつくってから結合しかないですかね… ちょっとやってみたいと思います。 ありがとうございます。

回答No.1

FULL OUTER JOIN を使用すればできると思います。

関連するQ&A

  • 2つのテーブル結合

    Oracle10g使用しています。 テーブルAとテーブルBを結合させてデータを取得したいと思っています。 [テーブルA] ID name 1 A 2 B 3 C 4 D [テーブルB] ID SEQ VALUE 1 1 111 2 1 222 2 2 333 3 1 444 4 1 555 4 2 666 4 3 777 テーブルAのキーは[ID]、テーブルBのキーは[ID,SEQ]です。 この二つを連結して以下のように出力したいと思っています。 ID SEQ NAME VALUE 1 1 A 111 2 2 B 333 3 1 C 444 4 3 D 777 テーブルBのデータは同じIDのうち最大のSEQのものを取得したいのですが よいSQLが思いつきません。 よい方法があればご教授ください。 よろしくお願いいたします。

  • エクセル関数で、2列の情報を1列に順番に並べたい

    以下の元データのようにA~D列にある情報を、 下方のE列、F列にあるように情報を合わせて表示したい場合、 E列、F列にはどのような関数を入れたらよいでしょうか。 COUNTIFやVLOOKUP関数を試してみましたが、 うまく順番に並べることができず途方に暮れています。。。 どなたかお知恵がある方、マクロではなく関数で 教えていただけたらありがたいです。 ※A列はB列の情報番号、C列はD列の情報番号です。 ↓元データ↓ A  B    C   D 1 みかん  1 あ 1 みかん  2 い 1 みかん  3 う 2 りんご   4 え 2 りんご   5 お 3 すいか  6 か 3 すいか  7 き 3 すいか  8 く 3 すいか  9 け ↓このようにしたいです。↓ A  B    C  D   E  F 1 みかん  1  あ    1  みかん 1 みかん  2  い    1  あ 1 みかん  3  う    2  い 2 りんご   4  え    3  う 2 りんご   5  お    2  りんご 3 すいか  6  か    4  え 3 すいか  7  き    5  お 3 すいか  8  く     3  すいか 3 すいか  9  け    6  か                 7  き                 8  く                  9  け 何とぞよろしくお願いします。

  • Excelで複数条件で抽出した複数データを出力

    Excelで複数条件で抽出した複数データを出力したい Shett1のセルAとセルBの複数条件で、Sheet2を検索し一致したSheet2のセルCを Sheet1の該当するセルCに入れたいのです。 それを関数でするのはどうしたらいいのでしょうか? Sheet1 A B NAME ID(タイトル) いちご A01 いちじく A02 かき B01 すいか C01 なし D01 ぱいなっぷる E01 ばなな E02 ぶどう F01 みかん G01 めろん H01 もも I01 りんご J01 Sheet2 A B C 名前 ID 漢字(タイトル) みかん G01 蜜柑 いちご A01 苺 ぶどう F01 葡萄 りんご J01 林檎 もも I01 桃 かき B01 柿 なし D01 梨 すいか C01 西瓜 いちじく A02 無花果

  • access テーブル結合の逆?

    Access2003 お世話になります。SQLで以下のようなデータを取得する場合、上手い方法はあるのでしょうか。なんだかとても簡単な事のような気がするのですが…… テーブルA: ---品名--- りんご みかん もも いちご テーブルB: ---品名--- りんご もも このテーブルBに入力されているレコードをテーブルAから"除外"して、結果として「みかん」と「いちご」だけが欲しいのです。 テーブルBのレコードが少なければ、直接 品名<>"りんご" とか書いてもいいのかもしれませんが、結合のようなSQLで一発でできてしまったりしないでしょうか。 access上で可能なスマートな方法があれば教えていただきたいです。 よろしくお願いいたします。

  • Accessで重複データを結合するには?

    こんにちわ、みなさん。 Access超初心者です。よろしくお願いします。 Accessのテーブルで下記のようなデータがあるとします。  店名  | 商品 |  A店  |リンゴ |  A店  |トマト |  A店  |ナシ  |  B店  |リンゴ |  B店  |みかん | これを下記のように店名ごとに商品名を結合したいのです。 (レポートではなく、テーブルにしたいです)  店名  | 商品        |  A店  |リンゴ;トマト;ナシ |  B店  |リンゴ;みかん    |   重複クエリーを使えばと思ったのですが、 思ったとおりにはなりませんでした。。 どうぞ、よろしくお願い致します。m(__)m ---------------------------------------- OSは、Windows 98 アプリケーションは、Access 2000 です ----------------------------------------

  • 同一テーブルから複数件のデータを取得して1データとしてみたい

    こんにちは。 現在、以下の構成のテーブルから 複数件のデータを取得して1つのデータとして 参照したいと思っているのですがどうやって よいものかわかりません。 申し訳ありませんがご教授ください。 --------------------- テーブルsample --------------------- 項目A key 項目B key 項目C key 項目D 項目E --------------------- 取得したいデータは以下の通りで 同一の項目A,B,Cでグルーピングして 項目D,Eが存在する分だけ取得したいと思っております。 ----------------------------------------------- 項目A,項目B,項目C,項目D,項目E,項目D,項目E,..... -----------------------------------------------

  • テーブル結合について

    テーブルの結合についてお聞きしたいことがあります。 カラム「KEY」を結合条件に テーブルA、B、Cを結合して【取りたい結果】のようなデータを取りたいと思っています。 しかし、テーブルAにBとCをLEFT JOINを結合した所、 【取得された結果】のデータが取得されました。 どのような結合をしたら期待通りの結果が得られるのでしょうか? 回答宜しくお願いします。 【取得された結果】 key dataA dataB dataC ------------------------------------------------- 1 A-1 B-1 C-1 A-1 B-1 C-2 A-1 B-1 C-3 2 A-2 3 A-3 【取りたい結果】 key dataA dataB dataC ------------------------------------------------- 1 A-1 B-1 C-1 A-1 C-2 A-1 C-3 2 A-2 3 A-3 【テーブルA】 key dataA --------------------- 1 A-1 2 A-2 3 A-3 【テーブルB】 key dataB --------------------- 1 B-1 【テーブルC】 key dataC --------------------- 1 C-1 1 C-2 1 C-3

  • Access、複数のテーブルからデーターを抽出する

    Access初心者です。 いくつかのテーブルがあります(日付順に用意されています) そのテーブルから、指定のセル(といっていいのでしょうか) より、データーをクエリとして抽出したいのですが、簡単なやり方はあるのでしょうか? 例として、 テーブル名 [0301]、[0302]、[0303]、[0304]、[0305]、・・・・・・・・。という5つのテーブルがあります。 1つのテーブル内は、このようになっています。 ------------------------------------- A B C D E F G 1 2 3 4     11 22 33 44 55 66 5 ------------------------------------- この5つのテーブルより、「B4」から「F4」までのデーターのみを ------------------------------------- 0301 ・・・・・・・・・・・・・・・・・・・・・・・・ 0302   ・・・・・・・・・・・・・・・・・・・・・・・・ 0303   ・・・・・・・・・・・・・・・・・・・・・・・・ 0304 -------------------------------------- といったように取り出すことはできますか? どうぞ宜しくお願い致します。

  • 二つのデータを比較してデータを自動でコピペしたい

    Sheet1「元データ」                 A   B    C   D     1 0001 みかん  A店  3/1  2 0200 りんご B店  3 0311 いちご B店  3/10 4    いちじく C店 5 0360 メロン  D店 6 かき   P店 7 0312 キウイ  D店 Sheet2「最新データ」   A   B    C   D 1 0001 みかん  A店  3/1 2 0190 3 0200 りんご B店  4 0311 いちご B店  3/10 5 0422 洋ナシ C店 6 0250 7 0500 すいか  P店  8 0312 キウイ というデータがあり、Sheet1のデータで、Sheet2には無いものがあったら、Sheet2に追加をしたいのですが、どのようにすればよいのか、さっぱりで困っています。何かヒントなどを戴きたいと思います。 よろしくお願いします。 こんな感じにしたいです。 Sheet2「最新データ」   A   B    C   D 1 0001 みかん  A店  3/1 2 0190 3 0200 りんご B店  4 0311 いちご B店  3/10 5 0422 洋ナシ C店 6 0250 7 0500 すいか  P店  8 0312 キウイ 9     いちじく C店 10 0360 メロン  D店 11 かき   P店  

  • データの無いテーブルと結合してデータ抽出

    以下のテーブルを使用してデータを抽出したいのですが、データが抽出できません。 名称テーブル -------------------- ID | NAME | -------------------- 0   AA 1   BB 2   EE 3   FF 履歴テーブル -------------------- ID | DAY | OLDNAME -------------------- 2   2004   CC 3   2004   DD 結果取得したいデータ -------------------- ID | NAME | OLDNAME -------------------- 0   AA =現在のSQL= SELECT A.ID, A.NAME, B.OLDNAME FROM 名称 A , 履歴 B WHERE A.ID = B.ID(+) AND A.ID=0 AND B.DAY =  (SELECT MAX(C.DAY)  FROM 履歴 C  WHERE  A.ID = C.ID(+)) 履歴テーブルには名称テーブルの履歴があります。 履歴にデータが無くても名称データを取得したいのですが、こういった場合はどのようなSQLを作ればいいのでしょうか。