MySQL STRAIGHT_JOIN
STRAIGHT_JOIN 是 MySQL 对标准 SQL 的扩展,用于在多表查询时指定表载入的顺序。在 JOIN 表连接中,同样可以指定表载入的顺序,本文只讲述 STRAIGHT_JOIN 在表连接 JOIN 中的应用。
MySQL STRAIGHT_JOIN 语法如下:
1 |
... 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 例子
1 |
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 JOIN
NATURAL JOIN 也叫自然连接,实际是属于 JOIN 的一种。
MySQL NATURAL JOIN 语法如下:
1 |
... FROM table1 NATURAL JOIN table2 ...
|
使用 NATURAL JOIN 时,MySQL 将表中具有相同名称的字段自动进行记录匹配,而这些同名字段类型可以不同。因此,NATURAL JOIN 不用指定匹配条件。
NATURAL JOIN 默认是同名字段完全匹配的 INNER JOIN,也可以使用 LEFT JOIN 或 RIGHT JOIN。一些例子如下:
1 |
SELECT article.aid,article.title, user .username FROM article NATURAL JOIN user
|
2 |
// LEFT
|
3 |
SELECT article.aid,article.title, user .username FROM article NATURAL LEFT JOIN user
|
4 |
// RIGHT
|
5 |
SELECT article.aid,article.title, user .username FROM article NATURAL RIGHT JOIN user
|
相关推荐
主要介绍了在MySQL中使用STRAIGHT_JOIN的教程,包括使用STRAIGHT_JOIN进行一些性能上的优化的技巧,需要的朋友可以参考下
在mysql中就有之对应的straight_join,由于mysql只支持nested loops的连接方式,所以这里的straight_join类似oracle中的use_nl hint。mysql优化器在处理多表的关联的时候,很有可能会选择错误的驱动表进行关联
navicat111_mysql_cs_x64navicat111_mysql_cs_x64navicat111_mysql_cs_x64navicat111_mysql_cs_x64navicat111_mysql_cs_x64navicat111_mysql_cs_x64navicat111_mysql_cs_x64navicat111_mysql_cs_x64navicat111_mysql...
lib_mysqludf_sys 的win版本dll库
尚硅谷_MySQL高级_索引结构与检索原理 · 18.尚硅谷_MySQL高级_哪些情况适合建索引 · 19.尚硅谷_MySQL高级_哪些情况不适合建索引 · 20.尚硅谷_MySQL高级_性能分析前提知识 · 21.尚硅谷_MySQL高级_explain使用...
tar zxvf navicat112_mysql_cs_x64.tar.gz 进入解压的目录,运行如下命令 ./start_navicat 问题一:中文乱码 解决:打开start_navicat文件 将export LANG="en_US.UTF-8"改为export LANG="zh_CN.UTF-8" 问题二:试用...
mysql5.5.27_win32_zol.msi mysql5.5.27windows安装程序
mysql 监控 Monitoring_MySQL mysql_en mysql
提高MySQL的性能:优化,备份,复制与荷载平衡
银河麒麟_飞腾_MYSQL 离线安装包,亲测可以使用
MySQL_5.1_zh.chm MySQL_5.1中文说明
17.MySQL高级_索引结构与检索原理.avi 16.MySQL高级_索引分类和建索引命令语句.avi 15.MySQL高级_索引优势劣势.avi 14.MySQL高级_索引是什么.avi 13.MySQL高级_七种JOIN的SQL编写.avi 12.MySQL高级_七种...
mysql自动备份mysql自动备份mysql自动备份
MySQL中文参考手册,详细介绍了MySQL的使用方法和函数这些方面的问题
用C语言操作mysql数据库 包括查询与操作等多种功能!
navicat112_mysql_en_x64 访问数据库工具
navicat112_mysql_cs_x64.tar.gz
Mycat与Mysql跨库JOIN与性能测试