• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Oracle SQL 結合の手法について)

Oracle SQL 結合の手法について

このQ&Aのポイント
  • Oracle SQLでの結合には、TBL_1とTBL_2のJUDGEが共に「OK」である、IDとJUDGEとTBL_2のDATEを結合することが必要です。
  • 結合処理を行うためには、SQLの知識が必要であり、TBL_1とTBL_2のデータを結合する条件を設定する必要があります。
  • 結合処理を行えば、希望検索結果のようにTBL_1とTBL_2の共通のデータを抽出することができます。

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

先ず、理論の組み立てが大切です。 (1)TBL_1からJUDGE=OKのものを抽出する。 (2)TBL_2からJUDGE=OKのものを抽出する。 (3)上記(1)と(2)をIDで結合する。 次にOracleのバージョンにより結合式の 書式が違います。 バージョンを明記しましょう。 最新と仮定すると、以下のようになります。 SELECT A.ID,A.JUDGE,B.DATE FROM (SELECT ID,JUDGE FROM TBL_1 WHERE JUDGE='OK') A INNER JOIN (SELECT ID,DATE FROM TBL_2 WHERE JUDGE='OK') B ON A.ID=B.ID 結合したクエリから条件を指定して抽出 するより、先に条件で絞り込んだクエリを 結合する方が件数が減っているので効率が 良くなります。まぁ、今時は機械も速いし、 件数が何十万でもなければ、どうやっても 見た目の変化はありませんが、昔はこういう ことをしないと、処理時間に大きな差がでた ものです。

kogawa9999
質問者

お礼

実機環境詳細を書かず、申し訳ございませんでした。 Oracleは9iの環境です。 細かい説明等も教えていただき、とても参考になりました。 ご回答ありがとうございました。

その他の回答 (1)

  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.1

SELECT TBL_1.ID, TBL_1.JUDGE, TBL_2.DATE FROM TBL_1, TBL_2 WHERE TBL_1.ID=TBL_2.ID AND TBL_1.JUDGE = "OK" AND TBL_2.JUDGE = "OK" かな?

kogawa9999
質問者

お礼

迅速なご回答ありがとうございました。

関連するQ&A