在MySQL中,CROSS JOIN在语法上等同于INNER JOIN;他们可以互相取代。但是在标准的SQL中,它们不是等价的。 INNER JOIN与ON子句一起使用;否则就使用CROSS JOIN。
通常,在仅包含内连接操作的连接表达式中可以忽略括号。
更确切地说,我们不能忽略left out join操作的右操作数和right join操作的左操作数中的括号。换句话说,我们不能忽略外连接操作的内部表表达式的括号。其他操作数的括号(外部表的操作数)可以忽略。
每当连接表达式(join_table)中的连接操作的执行顺序不是从左到右,我们认为存在嵌套连接。考虑以下查询:
在第一个查询中,嵌套连接由左连接操作构成。在第二个查询中,嵌套连接由一个内联接操作组成。
在第一个查询中,括号可以省略:连接表达式的语法结构将决定连接操作的执行顺序。对于第二个查询,不能省略括号,尽管这里的连接表达式可以毫无歧义地解释。但在我们的扩展语法中,第二个查询的(t2,t3)中的圆括号是必需的,尽管理论上查询可以在没有它们的情况下进行解析:我们仍然会为查询设置明确的语法结构,因为LEFT JOIN和ON扮演表达式(t2,t3)的左右分隔符。