Teradata-joins
Teradata-結合
結合は、複数のテーブルのレコードを結合するために使用されます。 テーブルは、これらのテーブルの共通の列/値に基づいて結合されます。
さまざまな種類の結合が利用可能です。
- 内部結合
- 左外部結合
- 右外部結合
- フル外部結合
- 自己参加
- クロスジョイン
- デカルト生産結合
内部結合
内部結合は、複数のテーブルのレコードを結合し、両方のテーブルに存在する値を返します。
構文
以下は、INNER JOINステートメントの構文です。
例
次の従業員表と給与表を考えてください。
EmployeeNo | FirstName | LastName | JoinedDate | DepartmentNo | BirthDate |
---|---|---|---|---|---|
101 | Mike | James | 3/27/2005 | 1 | 1/5/1980 |
102 | Robert | Williams | 4/25/2007 | 2 | 3/5/1983 |
103 | Peter | Paul | 3/21/2007 | 2 | 4/1/1983 |
104 | Alex | Stuart | 2/1/2008 | 2 | 11/6/1984 |
105 | Robert | James | 1/4/2008 | 3 | 12/1/1984 |
EmployeeNo | Gross | Deduction | NetPay |
---|---|---|---|
101 | 40,000 | 4,000 | 36,000 |
102 | 80,000 | 6,000 | 74,000 |
103 | 90,000 | 7,000 | 83,000 |
104 | 75,000 | 5,000 | 70,000 |
次のクエリは、共通列EmployeeNoでEmployeeテーブルとSalaryテーブルを結合します。 各テーブルにはエイリアスAとBが割り当てられ、列は正しいエイリアスで参照されます。
上記のクエリを実行すると、次のレコードが返されます。 従業員105は、給与テーブルに一致するレコードがないため、結果に含まれません。
外部参加
LEFT OUTER JOINとRIGHT OUTER JOINも、複数のテーブルの結果を組み合わせます。
- LEFT OUTER JOIN は、左側のテーブルからすべてのレコードを返し、右側のテーブルから一致するレコードのみを返します。
- RIGHT OUTER JOIN は、右側のテーブルからすべてのレコードを返し、左側のテーブルから一致する行のみを返します。
- FULL OUTER JOIN は、LEFT OUTER JOINとRIGHT OUTER JOINSの両方の結果を結合します。 結合されたテーブルから一致する行と一致しない行の両方を返します。
構文
以下は、OUTER JOINステートメントの構文です。 LEFT OUTER JOIN、RIGHT OUTER JOIN、FULL OUTER JOINのいずれかのオプションを使用する必要があります。
例
LEFT OUTER JOINクエリの次の例を考えてみましょう。 EmployeeテーブルのすべてのレコードとSalaryテーブルの一致するレコードを返します。
上記のクエリを実行すると、次の出力が生成されます。 従業員105の場合、NetPayの値はNULLです。これは、給与テーブルに一致するレコードがないためです。
クロスジョイン
クロス結合は、左のテーブルのすべての行を右のテーブルのすべての行に結合します。
構文
CROSS JOINステートメントの構文は次のとおりです。
上記のクエリを実行すると、次の出力が生成されます。 EmployeeテーブルのEmployeeNo 101は、Salaryテーブルのすべてのレコードと結合されます。