mysql straight_join straight_join 是 mysql 对标准 sql 的扩展,用于在多表查询时指定表载入的顺序。在 join 表连接中,同样可以指定表载入的顺序,本文只讲述 straight_join 在表连接 join 中的应用。 mysql straight_join 语法如下: ... from table1 st
mysql straight_joinstraight_join 是 mysql 对标准 sql 的扩展,用于在多表查询时指定表载入的顺序。在 join 表连接中,同样可以指定表载入的顺序,本文只讲述 straight_join 在表连接 join 中的应用。
mysql straight_join 语法如下:
... from table1 straight_join table2 on condition ...
straight_join 实际上与内连接 inner join 表现完全一致,不同的是使用了 straight_join 后,table1 会先于 table2 载入。
提示mysql 在执行 inner join 的时候,会根据自己内部的优化规则来决定先载入 table1 还是 table2,如果您确认 mysql 载入表的顺序并不是最优化的时候,就可以使用 straight_join 以替代 inner join。
mysql straight_join 例子select article.aid,article.title,user.username from article straight_join user on article.uid=user.uid
注意:该 sql 仅仅是 straight_join 使用示例,并不表示其合理性。
如果有更多表进行连接,那么使用 straight_join 后,其载入顺序就遵循从左往右的规则。最后,straight_join 无法应用于 left join 或 right join。
mysql natural joinnatural join 也叫自然连接,实际是属于 join 的一种。
mysql natural join 语法如下:
... from table1 natural join table2 ...
使用 natural join 时,mysql 将表中具有相同名称的字段自动进行记录匹配,而这些同名字段类型可以不同。因此,natural join 不用指定匹配条件。
natural join 默认是同名字段完全匹配的 inner join,也可以使用 left join 或 right join。一些例子如下:
select article.aid,article.title,user.username from article natural join user// leftselect article.aid,article.title,user.username from article natural left join user// rightselect article.aid,article.title,user.username from article natural right join user