mysql优化之Nested Join Optimization

在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)的左右分隔符。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值