自己結合操作とFROM句 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ操作言語

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/vnq1596660420420.ditamap
dita:ditavalPath
ja-JP/vnq1596660420420.ditaval
dita:id
B035-1146
Product Category
Software
Teradata Vantage

自己結合では、同じテーブルの別の行から選択された関連するデータが組み合わせされ、1行が返されます。FROM句を使用して定義された一時テーブルの名前は、同じテーブルの列の別の参照となります。

以下のテーブルは、自己結合処理における列参照の影響を一覧にしています。これらのルールは、単一の別名付きFROM句がある場合にだけ適用されます。
参照される列 参照の種類 自己結合
All 修飾されていない(列名の前に付くテーブル名または相関名がない)場合 自己結合は行なわれません。
修飾されている(しかし、修飾子が相関名だけを参照している)場合
一部ですが、すべてではありません。 修飾され、修飾子が相関名だけを参照している場合
修飾され、修飾子がテーブルだけを参照する場合 修飾されていない列の所有者についての仮定条件がないため、自己結合は未決定です。自己結合は行なわれません。

FROM句が永久テーブル名と相関名の両方を参照するときに、自己結合が実行されるかどうかは、列参照の修飾方法によります。

自己結合操作を成功させるためには、列参照は、完全に修飾されていなければならず(すなわち、table_name.column_nameの形式で指定されている)、修飾子には、永久テーブル名と相関テーブル名が含まれていなければなりません。

相関名が指定されると、以後の基本テーブル名への参照により、使用されるテーブルの新しいインスタンスが生じます。SELECTの結果は、直積の自己結合となります。

例: 自己結合に使用されるFROM句を参照してください。ここでtable_1に相関名tが指定されます。それに続くWHERE句でtable_1を指定することで、文は直積を実行します。

     SELECT *
     FROM table_1 AS t
     WHERE table_1.column_1 = 2;