图解 5 种 Join 连接及实战案例!(inner/ left/ right/ full/ cross)

Join 连接在日常开发用得比较多,但大家都搞清楚了它们的使用区别吗??一文带你上车~~

内连接 inner join

内连接是基于连接谓词将俩张表(如A和B)的列组合到一起产生新的结果表,在表中存在至少一个匹配时,INNER JOIN 关键字返回行。

下面是一个简单的使用案例

以下是运行代码及结果

左外连接 left join

左外连接Left join关键字会从左表那里返回所有的行,即使是在右表中没有匹配到的行

下面是一个简单的案例

下面是测试用例

右外连接 right join

右外连接关键字Right join会从右表那里返回所有的行,即使是在左表中没有匹配到的行

下面是一个简单的案例

下面是运行及其结果

全连接 full join

全连接的关键字Full join,只要其中某个表中存在匹配,Full join 就会返回行

下面是一个简单的案例

以下是运行及结果

注意一点 mysql中是不支持Full join 的但是orcal等数据库是支持的。 如果在mysql要使用Full join就会报以下错误

解决办法:同时使用左连接和右连接

以下是一个简单的例子

交叉连接 cross join

交叉连接一般使用的比较少,交叉连接又称笛卡尔连接或者叉乘连接,如果,A和B是俩个集合,他们的交叉连接就是A*B

以下是一个简单的案例

https://blog.csdn.net/u013412790/article/details/51626307

原文发布于微信公众号 - Java技术栈(javastack)

原文发表时间:2018-04-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏文渊之博

索引初探(三)

由于前一篇写的有点匆忙很多地方不是很简单,这一片再描述一些概念和细节。 首先,我们都知道在数据库中的存储分为两种结构,一是堆;二是B树。堆的数据是没有排序也就没...

1879
来自专栏王旭的专栏

Web 开发 MYSQL 常用方法整理 (上)

最近在记录Web开发MYSQL常用方法,本篇记录希望数据插入、数据查询这两方面,,后面还会对数据更新以及如何在SQL中实现排行进行整理,希望对初期接触Web 开...

4640
来自专栏专注 Java 基础分享

初识Hibernate之关联映射(二)

     上篇我们介绍了关联映射的几种形式,有单向多对一,单向一对多,还有双向一对多。本篇接着介绍有关关联映射的其他几种映射方式,主要有以下几种: 基于外键的单...

2335
来自专栏小樱的经验随笔

基于约束的SQL攻击

前言 值得庆幸的是如今开发者在构建网站时,已经开始注重安全问题了。绝大部分开发者都意识到SQL注入漏洞的存在,在本文我想与读者共同去探讨另一种与SQL数据库相...

3009
来自专栏杨建荣的学习笔记

关于表联结方法(一)(r3笔记第57天)

分类: Oracle 在sql语句中,如果from后面有多个表时,关于表的联结方法是很重要的一个环节。 大体有nested loop join,hash jo...

36910
来自专栏用户画像

mysql模拟题二

  3) MSSQLServer2005Enterprise Edition是哪一种版本?

1036
来自专栏L宝宝聊IT

T-SQL查询语句

1747
来自专栏恰童鞋骚年

Hadoop学习笔记—9.Partitioner与自定义Partitioner

  在第四篇博文《初识MapReduce》中,我们认识了MapReduce的八大步凑,其中在Map阶段总共五个步骤,如下图所示:

722
来自专栏农夫安全

注入学习之sqli-labs-4(第三关)

前言 说明一下问什么没有less2、less3、less4的讲解? 前两篇如果你弄懂了,第2、3、4关卡原理都是一样的,无非是sql语句的稍微不同 比如: 第一...

3446
来自专栏维C果糖

史上最简单的 MySQL 教程(二十五)「数据的高级操作 之 查询(下)」

having字句:与where子句一样,都是进行条件判断的,但是where是针对磁盘数据进行判断,数据进入内存之后,会进行分组操作,分组结果就需要having来...

4387

扫码关注云+社区

领取腾讯云代金券