- ベストアンサー
クエリー
以下の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 ご教授お願い致します。
- みんなの回答 (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.日付
その他の回答 (1)
- Hardking
- ベストアンサー率45% (73/160)
A、Bの外部結合を行う SELECT A.日付,B.名前,B.内容 FROM A,B WHERE A.日付 = B.日付 (+) ORDER BY A.日付;
お礼
ご回答ありがとうございます。 Hardkingさんのおっしゃるコーディングでは 以下のような結果になりませんか? 日付 名前 内容 2007/05/20 2007/05/21 BILL サッカー 2007/05/21 SMS 野球 2007/05/22 BILL 野球 2007/05/23 2007/05/24
お礼
ご回答ありがとうございました。 ご教授いただいた通りORACLEで実行したところ 希望していたリストが出てきました。 大変助かりました。 ありがとうございます。 1E-9さんはかなりのSQL習得者なのですか。