# `VERSION::7.1.0` Using Hint to Change to `IndexJoin` from `HashJoin` 

```
tidb> EXPLAIN SELECT m.name, m.age, n.title FROM m, n WHERE m.id = n.id;
+--------------------------+----------+-----------+---------------+----------------------------------------------+
| id                       | estRows  | task      | access object | operator info                                |
+--------------------------+----------+-----------+---------------+----------------------------------------------+
| Projection_9             | 12487.50 | root      |               | test.m.name, test.m.age, test.n.title        |
| └─~!@HashJoin_35@!~            | 12487.50 | root      |               | inner join, equal:[eq(test.n.id, test.m.id)] |
|  ├─TableReader_44(Build) | 9990.00  | root      |               | data:Selection_43                            |
|  │ └─Selection_43        | 9990.00  | cop[tikv] |               | not(isnull(test.n.id))                       |
|  │  └─TableFullScan_42   | 10000.00 | cop[tikv] | table:n       | keep order:false, stats:pseudo               |
|  └─TableReader_49(Probe) | 10000.00 | root      |               | data:TableFullScan_48                        |
|   └─TableFullScan_48     | 10000.00 | cop[tikv] | table:m       | keep order:false, stats:pseudo               |
+--------------------------+----------+-----------+---------------+----------------------------------------------+
7 rows in set (0.01 sec)

tidb> EXPLAIN SELECT /*+ INL_JOIN(m, n) */ m.name, m.age, n.title FROM m, n WHERE m.id = n.id;
+--------------------------+----------+-----------+---------------+-----------------------------------------------------------------------------------------------------------------+
| id                       | estRows  | task      | access object | operator info                                                                                                   |
+--------------------------+----------+-----------+---------------+-----------------------------------------------------------------------------------------------------------------+
| Projection_9             | 12487.50 | root      |               | test.m.name, test.m.age, test.n.title                                                                           |
| └─~!@IndexJoin_15@!~           | 12487.50 | root      |               | inner join, inner:TableReader_12, outer key:test.n.id, inner key:test.m.id, equal cond:eq(test.n.id, test.m.id) |
|  ├─TableReader_36(Build) | 9990.00  | root      |               | data:Selection_35                                                                                               |
|  │ └─Selection_35        | 9990.00  | cop[tikv] |               | not(isnull(test.n.id))                                                                                          |
|  │  └─TableFullScan_34   | 10000.00 | cop[tikv] | table:n       | keep order:false, stats:pseudo                                                                                  |
|  └─TableReader_12(Probe) | 9990.00  | root      |               | data:TableRangeScan_11                                                                                          |
|   └─TableRangeScan_11    | 9990.00  | cop[tikv] | table:m       | range: decided by [test.n.id], keep order:false, stats:pseudo                                                   |
+--------------------------+----------+-----------+---------------+-----------------------------------------------------------------------------------------------------------------+
7 rows in set (0.01 sec)
```
------------------------------------------------------------------------------
In this slide, we can observe the execution plan for the SQL statement.

The table join algorithm currently employed is `HashJoin`. To utilize `IndexJoin` instead, we added the optimizer hint `INL_JOIN`.