リファレンスガイド> TDV SQLのキーワードと構文> プロシージャへのSEMIJOIN
 
プロシージャへのSEMIJOIN
プロシージャへのSEMIJOINは、テーブルへのSemijoinと論理的に同等です。
構文
<table_expression>
[LEFT OUTER | RIGHT OUTER |INNER |FULL OUTER] PROCEDURE JOIN
<procedure> ProcedureAlias
ON <condition_expression>
 
この構文は、プロシージャ入力の一意の値のセットごとに、右側のプロシージャが1回呼び出されることを示しています。各呼び出しの結果は結合され、結合に供給される行として扱われます。結合は、同じタイプの非プロシージャ結合のように動作します。
備考
ここに示す特別な構文では、常に右側にプロシージャがあり、プロシージャの入力パラメータはリテラル式でなければならないという通常のルールから逸脱することができます。
この構文を使用する場合、プロシージャの入力パラメータには、左側のテーブル式から、そのコンテキストからのみ、任意のアイテムへの参照を含めることができます。つまり、左側のサブクエリ内の値のみを使用できます。他のスコープの値は使用できません。
すべての入力値の組み合わせが追跡され、プロシージャを再度呼び出すために繰り返されることはありません。
PROCEDUREキーワードの使用に関して:
PROCEDUREキーワードがないと、プロシージャは1回だけ呼び出されます。
キーワードを使用すると、結合の左側に応じて、プロシージャが0回以上呼び出されます。
(T1 LEFT OUTER JOIN T2 ON T1.x = T2.x)
INNER PROCEDURE JOIN
MyProc(T1.y+T2.y) P1 ON (T1.z = P1.z)