This is an automated email from the ASF dual-hosted git repository.
panjuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 22b92b3 update federation join query document (#13387)
22b92b3 is described below
commit 22b92b3a056b2989049f593a57ce581eab41dd11
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Mon Nov 1 17:00:18 2021 +0800
update federation join query document (#13387)
* update federation join query
* update federation join query
* update federation join query
* update federation join query
---
.../content/features/sharding/use-norms/sql.cn.md | 17 ++++++++++++++++-
.../content/features/sharding/use-norms/sql.en.md | 17 ++++++++++++++++-
2 files changed, 32 insertions(+), 2 deletions(-)
diff --git a/docs/document/content/features/sharding/use-norms/sql.cn.md
b/docs/document/content/features/sharding/use-norms/sql.cn.md
index fe01b4f..4853e00 100644
--- a/docs/document/content/features/sharding/use-norms/sql.cn.md
+++ b/docs/document/content/features/sharding/use-norms/sql.cn.md
@@ -92,7 +92,22 @@ SELECT * FROM (SELECT * FROM t_order WHERE order_id = 1) o
WHERE o.order_id = 2;
#### 跨库关联查询
-TODO
+当关联查询中的多个表分布在不同的数据库实例上时,由 Federation 执行引擎提供支持。
+假设 `t_order` 和 `t_order_item` 是多数据节点的分片表,并且未配置绑定表规则,`t_user` 和 `t_user_role`
是分布在不同的数据库实例上的单表,那么 Federation 执行引擎能够支持如下常用的关联查询:
+
+```sql
+SELECT * FROM t_order o INNER JOIN t_order_item i ON o.order_id = i.order_id
WHERE o.order_id = 1;
+
+SELECT * FROM t_order o INNER JOIN t_user u ON o.user_id = u.user_id WHERE
o.user_id = 1;
+
+SELECT * FROM t_order o LEFT JOIN t_user_role r ON o.user_id = r.user_id WHERE
o.user_id = 1;
+
+SELECT * FROM t_order_item i LEFT JOIN t_user u ON i.user_id = u.user_id WHERE
i.user_id = 1;
+
+SELECT * FROM t_order_item i RIGHT JOIN t_user_role r ON i.user_id = r.user_id
WHERE i.user_id = 1;
+
+SELECT * FROM t_user u RIGHT JOIN t_user_role r ON u.user_id = r.user_id WHERE
u.user_id = 1;
+```
### 不支持
diff --git a/docs/document/content/features/sharding/use-norms/sql.en.md
b/docs/document/content/features/sharding/use-norms/sql.en.md
index 8cf8fdf..2feddeb 100644
--- a/docs/document/content/features/sharding/use-norms/sql.en.md
+++ b/docs/document/content/features/sharding/use-norms/sql.en.md
@@ -93,7 +93,22 @@ SELECT * FROM (SELECT * FROM t_order WHERE order_id = 1) o
WHERE o.order_id = 2;
#### Join with cross databases
-TODO
+When tables in a join query are distributed on different database instances,
sql statement will be supported by `Federation execution engine`.
+Assuming that `t_order` and `t_order_item` are sharding tables with multiple
data nodes, and no binding table rules are configured, `t_user` and
`t_user_role` are single tables that distributed on different database
instances. `Federation execution engine` can support the following commonly
used join query:
+
+```sql
+SELECT * FROM t_order o INNER JOIN t_order_item i ON o.order_id = i.order_id
WHERE o.order_id = 1;
+
+SELECT * FROM t_order o INNER JOIN t_user u ON o.user_id = u.user_id WHERE
o.user_id = 1;
+
+SELECT * FROM t_order o LEFT JOIN t_user_role r ON o.user_id = r.user_id WHERE
o.user_id = 1;
+
+SELECT * FROM t_order_item i LEFT JOIN t_user u ON i.user_id = u.user_id WHERE
i.user_id = 1;
+
+SELECT * FROM t_order_item i RIGHT JOIN t_user_role r ON i.user_id = r.user_id
WHERE i.user_id = 1;
+
+SELECT * FROM t_user u RIGHT JOIN t_user_role r ON u.user_id = r.user_id WHERE
u.user_id = 1;
+```
### Unsupported