
# Join方式的Hint
#### 功能描述
指明Join使用的方法，可以为Nested Loop，Hash Join和Merge Join。
#### 语法格式
```
[no] nestloop|hashjoin|mergejoin(table_list)
```
#### 参数说明
- **no**表示hint的join方式不使用。
 
- **table_list** 为表示hint表集合的字符串，该字符串中的表与[join_table_list](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0244.html#ZH-CN_TOPIC_0000002186015990__zh-cn_topic_0000002185613398_zh-cn_topic_0283136909_zh-cn_topic_0237121533_section1280444714345)相同，只是中间不允许出现括号指定join的优先级。
例如：
no nestloop(t1 t2 t3)表示：生成t1，t2，t3三表连接计划时，不使用nestloop。三表连接计划可能是t2 t3先join，再跟t1 join，或t1 t2先join，再跟t3 join。此hint只hint最后一次join的join方式，对于两表连接的方法不hint。如果需要，可以单独指定，例如：任意表均不允许nestloop连接，且希望t2 t3先join，则增加hint：no nestloop(t2 t3)。
#### 示例
对[示例](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0243.html#ZH-CN_TOPIC_0000002221381677__zh-cn_topic_0000002185454322_zh-cn_topic_0283137554_zh-cn_topic_0237121532_section671421102912)中原语句使用如下hint:
```
explain
select /*+ nestloop(store_sales store_returns item) */ i_product_name product_name ...
```
该hint表示：生成store_sales，store_returns和item三表的结果集时，最后的两表关联使用nestloop。生成计划如下所示：
![](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/figure/zh-cn_image_0000002220980709.png "点击放大")
