- ベストアンサー
SQL・・・分かりません。
SQLの勉強をしています。 仕事の研修で習っているのですが、基礎的なものを学習しましたが 応用したパターンが全く理解ができません。 例としまして ・AテーブルとBテーブルを結合して、データを抽出する ・Aテーブルに存在しているのに、Bテーブルに存在していないデータも抽出する ・しかし、Aテーブルに存在していないのに、Bテーブルに存在しているはデータは抽出しない ☆抽出方法に二パターン存在する 1つ目も全く見当つかずです。ヒントでよいので教えていただけたらと思います。 意味が分からなかったらすみません。何を描き足したらよいか教えて下さい。 宜しくお願いしたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
基本的な外部結合です。 select * from A left join B on A.key=B.key Oracleでは、(+)を使う独自構文もあったはずです。 この程度のSQLなら、ネットでSQLの解説をしているサイトが、いくらでも見つかるはずです。 Oracleには、前の質問でも回答したように、Oracle 10g Express Editionがあります。また、もっと手軽なものには、Oracle Master受験者向けに、Web上でSQLを実行できる(検索や更新だけ可能。表の定義等はできない)環境を提供しています。 http://otn.oracle.co.jp/training/index.html どちらも、利用するには、無料の会員登録が必要です。 会員登録することで、Oracleの様々な情報を得られるようになります。 <SQLについての解説サイト例> http://www.rfs.jp/sb/sql/index.html http://www.techscore.com/tech/sql/index.html
その他の回答 (2)
- omotasam
- ベストアンサー率28% (69/246)
#1さんの追加でoracleのクセの方を・・・ select * from A,B where A.key = B.key(+) この場合、B側が外部結合され 提示された条件で、抽出されるようになります。 初めての頃はいっぱいsqlを書いてtry&errorをやってみましょう。 #1さんの紹介されているotnでいろんなテスト出来ますよ。
お礼
回答ありがとうございます。 私のなかでは一般的なSQLというんでしょうか? それもなかなかままならない状況でして (+)の使用方法は全く思いつきもしませんでした。 たくさん書いて覚えていきたいとおもいます。 ありがとうございました。
- chukenkenkou
- ベストアンサー率43% (833/1926)
#1です。 「前の質問でも回答したように、Oracle 10g Express Editionがあります」 ↓ 「前の質問でも回答したように、無料で使えるOracle 10g Express Editionがあります」 に訂正しておきます。
お礼
再び回答ありがとうございます。 まったくの勉強不足で、外部結合というものも分りませんでした(^_^;) 教えていただいたサイトで勉強させていただきました! それでも、まだ分からない点が多いのですが、、、。 >・AテーブルとBテーブルを結合して、データを抽出する >・Aテーブルに存在しているのに、Bテーブルに存在していないデータ抽出 する >・しかし、Aテーブルに存在していないのに、Bテーブルに存在しているはデータは抽出しない の2行目の文を ・Aテーブルに存在しているのに、Bテーブルに存在していないデータは抽出 しない 3行目の文を ・しかし、Aテーブルに存在していないのに、Bテーブルに存在しているはデータは抽出する にした場合は select * from A right join B on A.key=B.key leftの部分をrightにすればよいのでしょうか? この辺がいまいち分からないでおります。