sql常用到的查询连接
一、内连接(Inner Join)
select * from a inner join b on a.name=b.name;
此语句的结果为同时匹配表a和表b的记录集。即内连接取的是两个表的交集。
内连接分细分为三种:
1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接 表中的所有列,包括其中的重复列。
2、不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些 运算符包括>、>=、<=、<、!>、!<和<>。
3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询 结果集合中所包括的列,并删除连接表中的重复列。
二、全外连接(full outer join)
select * from a full outer join b on a.name=b.name;
此语句的结果为表a与表b的并集,即任意一个表的内容都将被查询出来,如果另一个表无对应的项,则显示为null
select * from a full outer join b on a.name=b.name where a.name is null or b.name is null;
此语句的结果为表a与表b的并集除去两表的交集。即除去了两表都有的部分,剩余的是两表各自不同的部分
三、左外连接(left outer join)
select * from a left outer join b on a.name=b.name;
此语句的结果为表a的所有项加表b与a相匹配的项,b中没有与a匹配的项时显示为null
select * from a left outer join b on a.name=b.name where b.name is null;
此语句的结果为表a的所有项除去两表的交集
四、右外连接(right outer join)
select * from a right outer join b on a.name=b.name;
此语句的结果为表a与表b匹配的项加表b的所有项,a中没有与b匹配的项时显示为null
select * from a right outer join b on a.name=b.name where a.name is null;
此语句的结果为表b的所有除去两表的交集
五、交叉连接(cross join)
显式的和隐式,不带on子句,返回的是两表的乘积,也叫笛卡尔积。
六、联合连接(union join)
转自:https://blog.csdn.net/gq137181972/article/details/79490558
最新文章
- UIBezierPath-绘制基本图形
- AndroidStudio 混淆打包
- 1606: [Usaco2008 Dec]Hay For Sale 购买干草
- Div 自适应屏幕大小
- ajax-Ajax试题
- MSSQLSERVER数据库- SP_EXECUTESQL的使用
- ios错误修改了系统头文件
- 如何用python语句获得Python的安装目录
- 一个提供jsp免费空间的站点
- 反向代理和HTTP重定向
- Spring之BeanFactory和FactoryBean接口的区别
- python的Web框架,html分页
- Python之路 - Socketserver实现多并发
- Android开发点滴 - 实现层级式导航(API 16+)
- apache的错误日志分析
- 在本地数据库目录或系统数据库目录中已经存在数据库别名";";的解决办法
- Linux内核分析第三周学习博客——跟踪分析Linux内核的启动过程
- python_继承.ziw
- 修改ecshop后台的管理菜单
- 【BZOJ4295】[PA2015]Hazard 乱搞