SELECT Statement | {IGNORE|FORCE} {INDEX|KEY} [FOR {JOIN|ORDER BY|GROUP BY}] ( index_list ) } index_list : index_name  [,  index_name ] ... A table reference is also known as a join expression. A table reference (when it refers to a partitioned table) may contain a  PARTITION  clause, including a list of comma-separated partitions, subpartitions, or both. This option follows the name of the table and precedes any alias declaration. The effect of this option is that rows are selected only from the listed partitions or subpartitions. Any partitions or subpartitions not named in the list are ignored. For more information and examples, see Section 24.5, “Partition Selection” . The syntax of  table_factor  is extended in MySQL in comparison with standard SQL. The standard accepts only  table_reference , not a list of them inside a pair of parentheses. This is a conservative extension if each comma in a list of  table_reference  items is considered as equivalent to an inner join. For example: is equivalent to: In MySQL,  JOIN ,  CROSS JOIN , and  INNER JOIN  are syntactic equivalents (they can replace each other). In standard SQL, they are not equivalent.  INNER JOIN  is used with an  ON  clause,  CROSS JOIN  is used otherwise. In general, parentheses can be ignored in join expressions containing only inner join operations. MySQL also supports nested joins. See Section 8.2.1.8, “Nested Join Optimization” . Index hints can be specified to affect how the MySQL optimizer makes use of indexes. For more information, see Section 8.9.4, “Index Hints” . Optimizer hints and the  optimizer_switch  system variable are other ways to influence optimizer use of indexes. See Section 8.9.3, “Optimizer Hints” , and Section 8.9.2, “Switchable Optimizations” . The following list describes general factors to take into account when writing joins: SELECT t1.name, t2.salary FROM employee AS t1 INNER JOIN info AS t2 ON t1.name = t2.name; SELECT t1.name, t2.salary FROM employee t1 INNER JOIN info t2 ON t1.name = t2.name; SELECT * FROM (SELECT 1, 2, 3) AS t1; SELECT * FROM t1 LEFT JOIN (t2, t3, t4) ON (t2.a = t1.a AND t3.b = t1.b AND t4.c = t1.c) SELECT * FROM t1 LEFT JOIN (t2 CROSS JOIN t3 CROSS JOIN t4) ON (t2.a = t1.a AND t3.b = t1.b AND t4.c = t1.c) •A table reference can be aliased using  tbl_name  AS  alias_name  or  tbl_name alias_name : •A  table_subquery  is also known as a derived table or subquery in the  FROM  clause. See Section 13.2.11.8, “Derived Tables” . Such subqueries  must  include an alias to give the subquery result a table name, and may optionally include a list of table column names in parentheses. A trivial example follows: •The maximum number of tables that can be referenced in a single join is 61. This includes a join handled by merging derived tables and views in the  FROM  clause into the outer query block (see Section 8.2.2.4, 2672