Realtime Computeで 使用される JOIN 文のセマンティクスは、バッチ処理の従来の JOIN 文と同じです。 両方の文は、2 つのテーブルを結合するために使用されます。 ただし、Realtime Compute の JOIN 文では、2 つの動的テーブルを結合し、結合結果は動的に更新されて、最終結果がバッチ処理結果と一致するようになります。
構文
tableReference [, tableReference ]* | tableexpression
[ LEFT ] JOIN tableexpression [ joinCondition ];
注
- 等結合はサポートされていますが、非等結合はサポートされていません。
- INNER JOIN と LEFT OUTER JOIN のみサポートされています。
例 1
- テストデータ
Orders:
rowtime productId orderId units 10:17:00
30 5 4 10:17:05
10 6 1 10:18:05
20 7 2 10:18:07
30 8 20 11:02:00
10 9 6 11:04:00
10 10 1 11:09:30
40 11 12 11:24:11
10 12 4 Products:
productId name unitPrice 30 Cheese 17
10 Beer 0.25
20 Wine 6
30 Cheese 17
10 Beer 0.25
10 Beer 0.25
40 Bread 100
10 Beer 0.25
- テスト文
SELECT o.rowtime, o.productId, o.orderId, o.units,p.name, p.unitPrice FROM Orders AS o JOIN Products AS p ON o.productId = p.productId;
- テスト結果
rowtime productId orderId units name unitPrice 10:17:00
30 5 4 Cheese 17
10:17:05
10 6 1 Beer 0.25
10:18:05
20 7 2 Wine 6
10:18:07
30 8 20 Cheese 17
11:02:00
10 9 6 Beer 0.25
11:04:00
10 10 1 Beer 0.25
11:09:30
40 11 12 Bread 100
11:24:11
10 12 4 Beer 0.25
例 2
- テストデータ
datahub_stream1:
a (BIGINT) b (BIGINT) c (VARCHAR) 0 10 test11 1 10 test21 datahub_stream2:
a (BIGINT) b (BIGINT) c (VARCHAR) 0 10 test11 1 10 test21 0 10 test31 1 10 test41 - テスト文
SELECT s1.c,s2.c FROM datahub_stream1 AS s1 JOIN datahub_stream2 AS s2 ON s1.a =s2.a WHERE s1.a = 0;
- テスト結果
s1_c (VARCHAR) s2_c (VARCHAR) test11 test11 test11 test31