JOIN详解
来源:互联网 发布:网络投稿小说网站 编辑:程序博客网 时间:2024/06/07 04:02
JOIN详解
SQL中JOIN有多种:JOIN、INNER JOIN、FULL JOIN、FULL OUTER JOIN、LEFT JOIN、LEFT OUTER JOIN、RIGHT JOIN、LEFT OUTER JOIN。
同时不还要注意ON ,WHERE等条件使用。
注:
1、只有 FULL JOIN 完全强制连接顺序
2、大多数 LEFT JOIN 或 RIGHT JOIN 都可以在某种程度上重新排列
3、LEFT JOIN就是左表为基表,全部显示。RIGHT JOIN相反
详解:
JOIN与INNER JOIN:
join是自然连接,对两张表中字段名和数据类型都相同的字段进行等值连接,并返回符合条件的结果;
inner join是内连接,显示符合连接条件的记录,连接条件已经指明了;
两个连接的结果集数据是一样的,只是顺序不同。这里需要注意join的时候和inner join连接时使用的连接条件是不一样的,所以在结果中记录出现的顺序会有所不同,但两个结果结合是一样的
FULL JOIN 或 FULL OUTER JOIN
完整外部联接将返回左表和右表中的所有行。当某一行在另一个表中没有匹配行时,另一个表的选择列表列将包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
完整外部联接将返回左表和右表中的所有行。当某一行在另一个表中没有匹配行时,另一个表的选择列表列将包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
LEFT JOIN 或 LEFT OUTER JOIN
左向外部联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某一行在右表中没有匹配行,则在关联的结果集行中,来自右表的所有选择列表列均为空值。
RIGHT JOIN 或 RIGHT OUTER JOIN
右向外部联接是左向外部联接的反向联接。将返回右表的所有行。如果右表的某一行在左表中没有匹配行,则将为左表返回空值。
左向外部联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某一行在右表中没有匹配行,则在关联的结果集行中,来自右表的所有选择列表列均为空值。
RIGHT JOIN 或 RIGHT OUTER JOIN
右向外部联接是左向外部联接的反向联接。将返回右表的所有行。如果右表的某一行在左表中没有匹配行,则将为左表返回空值。
ON和WHERE区别:
以left join为例
ON会以左表的基准数据,凡左表出现的数据均要出现,然后再进行join右表,只要关联上的就需要查出来,如果相应的字段没有值或不符合条件的话就置为NULL。
WHERE:会再关联结果上进行过滤。
ON与WHERE先后顺序:先ON过滤,再关联,最后WHERE过滤。
0 0
- Join详解
- JOIN详解
- SQL之join详解
- MySQL Join详解
- join与fetch详解
- [SHELL]:join 命令详解
- SQL的Join详解
- oracle join 使用详解
- Hive Join详解
- Java Thread.join详解
- Linux 命令详解 -- join
- Java Thread.join()详解
- hive join详解
- left join详解
- Java Thread.join()详解
- Hive Join详解
- Java Thread.join()详解
- Java Thread.join()详解
- HDU 5521 2015ACM-ICPC沈阳赛区现场赛M题
- Android开发之RecyclerView的使用全解
- 【PS】绘制透明玻璃质感小球
- linux中的hexdump命令
- 单元测试如何测试异常与超时
- JOIN详解
- apache的虚拟域名rewrite配置以及.htaccess的使用。
- JQ选择的链式写法
- scrapy的应用
- 2016.10.20-日志
- 基于C#\WPF的UDP网口助手源码
- 解析Json数据的时候抛出MalformedJsonException
- 【多用户访问一个文件】文件锁
- r进行crt预估