mysql natural join_MySQL STRAIGHT_JOIN 与 NATURAL JOIN
MySQL STRAIGHT_JOIN
STRAIGHT_JOIN 是 MySQL 对标准 SQL 的扩展,用于在多表查询时指定表载入的顺序。在 JOIN 表连接中,同样可以指定表载入的顺序,本文只讲述 STRAIGHT_JOIN 在表连接 JOIN 中的应用。
MySQL STRAIGHT_JOIN 语法如下:
1
...FROM table1 STRAIGHT_JOIN table2ON 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.usernameFROM article STRAIGHT_JOINuser 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 NATURALJOIN table2 ...
使用 NATURAL JOIN 时,MySQL 将表中具有相同名称的字段自动进行记录匹配,而这些同名字段类型可以不同。因此,NATURAL JOIN 不用指定匹配条件。
NATURAL JOIN 默认是同名字段完全匹配的 INNER JOIN,也可以使用 LEFT JOIN 或 RIGHT JOIN。一些例子如下:
1
SELECT article.aid,article.title,user.usernameFROM article NATURALJOINuser
2
//LEFT
3
SELECT article.aid,article.title,user.usernameFROM article NATURALLEFTJOIN user
4
//RIGHT
5
SELECT article.aid,article.title,user.usernameFROM article NATURALRIGHTJOIN user
mysql natural join_MySQL STRAIGHT_JOIN 与 NATURAL JOIN相关推荐
- mysql的natural join_MySQL基础之Natural Join用法
Natural join即自然连接,natural join等同于inner join或inner using,其作用是将两个表中具有相同名称的列进行匹配 用https://www.w3resourc ...
- mysql as join_mysql as 别名与 join 多表连接语法
在MySQL中,使用AS关键字为字段.表.视图取别名,或者不用as,用空格隔开: SELECT (SELECT id a,title b FROM blog c limit 1)d; 使用字段别名,可 ...
- mysql semi join_MySQL 5.6 Semi join优化之materialization strategy
8月 24, 2014 | Nix.Huang 考虑如下查询: select * from Country where Country.code IN (select City.Country fro ...
- mysql多种join_MySQL的几种Join
/* 左表t1*/ DROP TABLE IF EXISTS t1; CREATE TABLE t1 (id INT NOT NULL,NAME VARCHAR(20)); INSERT INTO t ...
- MySQL EXPLAIN详解,left join和in优化详解,以及optimizer_trace跟踪语句使用
最近优化mybaits的sql语句性能,网上查了查mysql的explain用法,这里记录一下,希望对大家有帮助. EXPLAIN简述: explain为mysql提供语句的执行计划信息.可以应用在s ...
- mysql semi join_MySQL 通过semi join 优化子查询
半连接是MySQL 5.6.5引入的,多在子查询exists中使用,对外部row source的每个键值,查找到内部row source匹配的第一个键值后就返回,如果找到就不用再查找内部row sou ...
- mysql 一对多 join_Mysql中FIND_IN_SET与JOIN在一对多关系查询时的优劣
Mysql中的FIND_IN_SET函数在我知道它之前,我在做一个一对多的外键查询时,都会在中间设计一个关系表.比如一篇文章(post)对应多个标签(tag),我就会在中间设计一个关系表(post_t ...
- mysql hash join_MySQL的Hash Join能用吗?
最近有两篇MySQL大咖级人物的文章引起了小伙伴们的关注,文章内容是关于MySQL的hash join功能.hash join看起来不够智能,于是我打算一探究竟,看看是否能发现些端倪,文末解释了大咖们 ...
- mysql left join_MySQL LEFT JOIN 语法用法与实例
MySQL LEFT JOIN 语法 SQL(MySQL) LEFT JOIN 会取得左表(table1)全部记录,即使右表(table2)并无对应匹配记录.LEFT JOIN 基本语法如下: ... ...
最新文章
- 78. Spring Boot完美使用FastJson解析JSON数据【从零开始学Spring Boot】
- 公司承担的国家发改委高技术产业化示范工程
- FileMonitorKit 文件操作监控工具
- springamqp_SpringAMQP
- java工厂模式和抽象工厂_Java中的抽象工厂设计模式
- JavaFX及Java客户端技术的未来
- kotlin list转map
- ov5640帧率配置_OV5640(2):配置寄存器
- mas6a801 sw tree disp
- linux内核 初始化 wifi,Linux驱动(六)----Wifi基础
- 啤酒与尿布?挖掘商品之间的关联性分析(1):机器学习之Apriori算法
- 带宽、延时、吞吐率、PPS 这些都是啥?
- Web前端是什么?Web前端包括哪些技术?
- 群晖NAS加AD域时提示用户名或密码错误,但域管理员帐号和密码是对的,并且在电脑上可以正常加域。
- 中文分词多领域语料库
- 中视典编辑器 输出html5,虚拟现实软件|VRP-BUILDER 虚拟现实编辑器 - 【中视典数字科技】...
- FMDB - - 归纳整理- Vic_Li
- 绿幕虚拟直播,直播时代的风口
- Maven 虐我千百遍,我待 Maven 如初恋 侵删
- 萤石云视频EZOpenSDK集成(实现播放,视频放大功能)