• ベストアンサー

クエリー

以下の2つのテーブルがあります。 テーブルA(KEY=日付) 日付 2007/05/20 2007/05/21 2007/05/22 2007/05/23 2007/05/24 テーブルB(KEY=日付+名前) 日付 名前  内容 2007/05/22  BILL  野球 2007/05/21 SMIS  野球 2007/05/21 BILL  サッカー 以上テーブルを利用して、テーブルAの全日付に対して テーブルBの名前がBILLのみのリストを出したいのですが どのようにすれば良いでしょうか。 以下の一覧が希望です。 日付 名前 内容 2007/05/20 2007/05/21  BILL サッカー 2007/05/22 BILL 野球 2007/05/23 2007/05/24 ご教授お願い致します。

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

  • ベストアンサー
  • 1E-9
  • ベストアンサー率51% (22/43)
回答No.2

A、Bの外部結合をする時に、BをBLLのみSELECTしたらいかがでしょうか。 (MS SQLだとこれで動くのですが、Oracleは動くか自信が無いです) SELECT a.日付, b.名前, b.内容 FROM テーブルA a LEFT OUTER JOIN (SELECT 日付, 名前, 内容 FROM テーブルB WHERE 名前='BLL') b ON a.日付=b.日付 ORDER BY a.日付

shin-cyan
質問者

お礼

ご回答ありがとうございました。 ご教授いただいた通りORACLEで実行したところ 希望していたリストが出てきました。 大変助かりました。 ありがとうございます。 1E-9さんはかなりのSQL習得者なのですか。

その他の回答 (1)

  • Hardking
  • ベストアンサー率45% (73/160)
回答No.1

A、Bの外部結合を行う SELECT A.日付,B.名前,B.内容 FROM A,B WHERE A.日付 = B.日付 (+) ORDER BY A.日付;

shin-cyan
質問者

お礼

ご回答ありがとうございます。 Hardkingさんのおっしゃるコーディングでは 以下のような結果になりませんか? 日付    名前   内容 2007/05/20 2007/05/21 BILL サッカー 2007/05/21 SMS 野球 2007/05/22 BILL 野球 2007/05/23 2007/05/24

関連するQ&A