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
 

Reply via email to