解释MySQL外连接、内连接与自连接的区别
先说什么是交叉连接: 交叉连接又叫笛卡尔积,它是指不使用任何条件,直接将一个表的所有记录和另一个表中的所有记录一一匹配。
笛卡尔积又叫笛卡尔乘积,是由一个笛卡尔人提出来的,简单地来说就是两个集合相乘的结果。直观的说 集合A{a1,a2,a3} 集合B{b1,b2} 他们的笛卡尔积就是A*B ={(a1,b1),(a1,b2),(a2,b1),(a2,b2),(a3,b1),(a3,b2)}
例子:
--表stu id name
1, Jack
2, Tom
3, Kity
4, nono
--表exam id grade
1, 56
2, 76
11, 89
内连接:是只有条件的交叉连接,根据某个条件筛选出符合条件的记录,不符合条件的记录不会出现在结果集中,即内连接只连接匹配的行。
内连接例子:(只显示两表id匹配)
select stu.id,exam.id,stu.name, exam.grade from stu inner join exam on stu.id=exam.id
结果:1 1 Jack 56
2 2 Tom 76
外连接:其结果集中不仅包含符合连接条件的行,而且还会包括左表、右表或两个表中的所有数据行,这三种情况依次称之为左外连接,右外连接,和全外连接。
左外连接,也称左连接,左表为主表,左表中的所有记录都会出现在结果集中,对于那些在右表中并没有匹配的记录,仍然要显示,右边对应的那些字段值以NULL来填充。
左外连接例子:(显示join左边的所有数据,exam只有两条记录,所以stu.id,grade都用Null来表示)
select stu.id,exam.id,stu.name, exam.grade from stu left join exam on stu.id=exam.id
结果: 1 1 Jack 56
2 2 Tom 76
3 NULL Kity NULL
4 NULL nono NULL
右外连接,也称右连接,右表为主表,右表中的所有记录都会出现在结果集中。左连接和右连接可以互换,MySQL目前还不支持全外连接。
右外连接例子:(与左外连接相反,显示join右边表的所有数据)
select stu.id,exam.id,stu.name, exam.grade from stu right join exam on stu.id=exam.id
结果:1 1 Jack 56
2 2 Tom 76
NULL 11 NULL 89
解释MySQL外连接、内连接与自连接的区别相关推荐
- SQL语法 自然连接 外连接 内连接
文章目录 笛卡尔积 连接 内连接 自连接 自然连接 外连接 左外连接 右外连接 区分连接 自然连接 内连接 内连接.外连接 on 和 where 条件过滤的区别 参考链接 笛卡尔积 结果集数目为多个表 ...
- 简单的mysql左链接_简单谈谈mysql左连接内连接
前言 最近忙着开发x省冷链追溯系统,天天干到晚上十一点多才回到家,周末也加班,没啥时间写博客,闲下来再好好写写 业务: sql语句统计出入库数据. 问题:只统计了X端入库单. 原因: 没有发现X端的数 ...
- MySQL什么用于左连接_简单谈谈mysql左连接内连接
前言 最近忙着开发x省冷链追溯系统,天天干到晚上十一点多才回到家,周末也加班,没啥时间写博客,闲下来再好好写写 业务: sql语句统计出入库数据. 问题:只统计了X端入库单. 原因: 没有发现X端的数 ...
- MySQL数据库的内连接,左外连接和右外连接查询
1.首先谈一谈数据库的连接查询有什么作用? 简单的说就是在实际生活中,当我们查询某些数据的时候,一张表不可能为我们提供足够多的数据,其次在数据库的设计的时候,考虑到表的结构和复杂性,会设计多张分类表, ...
- MySQL中的内连接和外连接
一.MySQL内连接(INNER JOIN) 内连接,又称为等值连接,是最常见的连接类型.它根据两个(或多个)表中具有相同列值的行来创建一个新的结果表.在内连接中,只有通过连接条件匹配的行才会被包含在 ...
- MySql连接——内连接、外连接(左连接、右连接、全连接)
1. 内联接 使用比较运算符根据每个表共有的列的值匹配两个表中的行 2. 外联接 1)左联接 left join /left outer join 右表无匹配的时候,行为null,左表的行保留 2)右 ...
- MySQL--多表连接(内连接、外连接、交叉连接--笛卡尔积)
@toc 更多关于数据库知识请加关注哟~~.若需联系博主请私信或者加博主联系方式: QQ:3327908431 微信:ZDSL1542334210 前言:MySQL一系列 ...
- Mysql中外连接,内连接,左连接,右连接的区别
养成习惯,先赞后看!!! 目录 1. 前言 2. 外连接 2.1左连接 2.2右连接 3. 内连接 1. 前言 相信大家一定都做过多表的连表查询,并且这其中的查询方式也比较多样. 可能主要就是下面这几 ...
- oracle内连接使用,Oracle中的联合查询-自然连接/外连接/内连接
自然连接 select * from r1 natural [inner] join r2 natural [inner] join r3 where P; select A1,A2 from r1 ...
最新文章
- 阿里云nginx配置ssl证书
- Windows PE 第十二章 PE变形技术
- git概念篇(remote,base,local)的含义
- matplotlib各个部分
- c语言二进制long,C语言填空题 把从键盘上输入的十进制数(long型)以二进制~十六进制任一制式的形式输出#include main(){...
- 深入浅出SQL(2)——select、update…
- k8s install
- 大学计算机科学不会编码,华中科技大学人员编号编码管理办法
- Web前端Javascript笔记(8)Ajax前后端交互
- python0不能做除数、怎么解决_为什么不能用 0 做除数?
- BZOJ 1911: [Apio2010]特别行动队
- 基于Lua语言的wireshark插件编写
- 揭示Win32 API拦截细节/API hooking revealed (2)
- 2021-01-03
- 自动量化炒股软件是什么?
- 新王诞生!ACP世界大赛中国区总决赛超燃收官!
- opencv-python数字图像处理学习7:提取一副彩色图像中红色,用HIS模型处理,RGB模型对比显示
- 华为IdeaHub的商业市场启示“路”
- 内存寻址:逻辑地址到物理地址的转化
- 离散KL变换原理、实例以及matlab实现