3.6.8. FROM 句


FROM 句は SELECT、UPDATE、DELETE ステートメントのターゲットテーブルを指定します。

構文の例:

  • FROM table [[AS] alias]
  • FROM table1 [INNER|LEFT OUTER|RIGHT OUTER|FULL OUTER] JOIN table2 ON join-criteria
  • FROM table1 CROSS JOIN table2
  • FROM(subquery)[AS] エイリアス
  • FROM TABLE(subquery)[AS] エイリアス。詳細は、「 ネストされたテーブル」を参照してください。
  • FROM table1 JOIN /*+ MAKEDEP */ table2 ON join-criteria
  • FROM table1 JOIN /*+ MAKENOTDEP */ table2 ON join-criteria
  • FROM /*+ MAKEIND */ table1 JOIN table2 ON join-criteria
  • FROM /*+ NO_UNNEST */ vw1 JOIN table2 ON join-criteria
  • FROM table1 left outer join /*+ optional */ table2 ON join-criteria詳細は、「 Federated optimizations 」の オプションで参加 します。
  • FROM TEXTTABLE… 詳細は、TEXTTABLE を参照してください。
  • FROM XMLTABLE… 詳細は「 XMLTABLE 」を参照してください。
  • FROM ARRAYTABLE… 詳細は、ARRAYTABLE を参照してください。
  • FROM OBJECTTABLE… 詳細は、「 OBJECTTABLE 」を参照してください。
  • FROM JSONTABLE… 詳細は JSONTABLE を参照してください。
  • FROM SELECT… 詳細は「 Subqueries 」の「 Inline views 」を参照してください。

From 句のヒント

from 句のヒントは、通常、影響を受ける句の前にあるコメントブロックに指定されます。MAKEDEP および MAKENOTDEP は、影響を受ける句の後にはcomment でない形式でも表示される可能性があります。複数のヒントをその句に適用する場合は、ヒントを同じコメントブロックに配置する必要があります。

ヒントの例

FROM /*+ MAKEDEP PRESERVE */ (tbl1 inner join tbl2 inner join tbl3 on tbl2.col1 = tbl3.col1 on tbl1.col1 = tbl2.col1), tbl3 WHERE tbl1.col1 = tbl2.col1
Copy to Clipboard Toggle word wrap

依存する結合ヒント

MAKEIND、MMAKEDEP、および MAKENOTDEP は、依存する結合動作を制御するのに使用できるヒントです。オプティマイザーがクエリー構造、メタデータ、および費用情報に基づいて最も最適な計画を選択しない場合にのみ使用してください。このヒントは、FROM キーワードに続くコメントに表示されます。このヒントは、名前付きテーブルだけでなく、FROM 句に対して指定できます。

MAKEIND
句が依存する参加の独立(実行)側のものである必要があることを示します。
MAKEDEP
句が参加に依存する(フィルターされた)側でなければならないことを示します。
MAKENOTDEP
句が参加に依存する(フィルター処理)されないようにします。

MAKEDEP および MAKEIND で以下のオプションの MAX 引数および JOIN 引数を使用できます。

MAKEDEP(JOIN)
結合全体をプッシュする必要があることを示します。
MAKEDEP(NO JOIN)
結合全体をプッシュしないことを示します。
MAKEDEP(MAX:val)
独立した結合は、独立した側からの値の最大数より少ない場合にのみ実行する必要があります。

他のヒント

NO_UNNEST は、サブクエリー FROM 句またはビューに対して指定でき、周りのクエリーでネストされた SQL をマージしないよう planner に指示します。このプロセスは、ビューフラット化 と呼ばれます。このヒントは、Data Virtualization の計画にのみ適用され、ソースクエリーに渡されません。NO_UNNEST は、FROM キーワードに続くコメントに表示されます。

PRESERVE ヒントは、ANSI 結合ツリーに対して使用して、Data Virtualization オプティマイザーが結合を並べ替えることができるようにするのではなく、結合の構造を保持することができます。これは、Oracle ORDERED または MySQL STRAIGHT_JOIN ヒントと同様に機能します。

PRESERVE ヒントの例

FROM /*+ PRESERVE */ (tbl1 inner join tbl2 inner join tbl3 on tbl2.col1 = tbl3.col1 on tbl1.col1 = tbl2.col1)
Copy to Clipboard Toggle word wrap

3.6.8.1. ネストされたテーブル

ネストされたテーブルは、TABLE キーワードを含む FROM 句で表示できます。これらは、通常の join セマンティクスでビューを使用する代わりに使用されます。ネストされたテーブルに含まれるコマンドから展開された列は、結合基準、WHERE 句、およびその他のコンテキストで使用できます。ここでは、FROM 句を展開された列を使用できます。

ネストされたテーブルは、INNER および LEFT OUTER 結合が使用される限り、前述の FROM 句の列参照に相関させることができます。これは、ネストされた式が手順または関数呼び出しである場合に特に便利です。

有効なネストされたテーブルの例

select * from t1, TABLE(call proc(t1.x)) t2
Copy to Clipboard Toggle word wrap

無効なネストされたテーブルの例

以下のネストされたテーブルの例は無効です。これは、t1 は FROM 句のネストされたテーブルの後に表示されるためです。

select * from TABLE(call proc(t1.x)) t2, t1
Copy to Clipboard Toggle word wrap
複数の実行

相関ネストされたテーブルを使用すると、相関行ごとに複数のテーブル式の実行が可能になります。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat