• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLでご助言いただきたく。)

SQLでAAA,BBB,CCCのテーブルを結合して特定の条件でSELECTする方法

このQ&Aのポイント
  • AAA,BBB,CCCの3つのテーブルを結合し、ename、fcode、dateの3つのカラムを取得するためのSQL文を考えています。条件として、AAAのfname列とCCCのfname列を紐付け、BBBのid列とCCCのid列を紐付け、そしてCCCのdate列が2012-10-31以上のものだけを取得します。
  • 提案されたSQL文は、AAAとCCCの結果を先に紐付けし、その結果とBBBを紐付ける形で書かれています。このSQL文の間違いがないか判定していただきたいです。
  • また、もっとスマートな書き方があれば教えていただきたいです。データベースはオラクル仕様です。

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

  • ベストアンサー
回答No.1

きっといいと思います。 唯一気にした方がいい部分としては、日付項目は明示的に日付型に 変換した上で比較してあげましょう。 個人的には必要性がない場合にFROM句内にサブクエリを書くのが 見通しが悪くなって嫌いなので SELECT    A.ENAME    B.FCODE    C.DATE FROM AAA A,    BBB B,    CCC C WHERE A.FNAME = B.FNAME AND  B.ID  = C.ID AND  C.DATE >= TO_DATE('2012/10/31', 'YYYY/MM/DD')

関連するQ&A