- ベストアンサー
※ 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文の間違いがないか判定していただきたいです。
- また、もっとスマートな書き方があれば教えていただきたいです。データベースはオラクル仕様です。
- みんなの回答 (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')