博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sql语句中的 inner join 、 left join 、 right join、 full join 的区别
阅读量:5136 次
发布时间:2019-06-13

本文共 1237 字,大约阅读时间需要 4 分钟。

简单明了地说,连接分内连接和外链接

假设有A和B两张表

内连接:inner join   表示把AB表的记录相符都显示出来,把AB表不符合条件的都排除

外连接分三种,即左连接(LEFT OUTER JOIN)、右连接(RIGHT OUTER JOIN)、全连接(FULL OUTER JOIN),下面就简单解析一下,。1.A LEFT OUTER JOIN B表示把A表的记录都显示出来,把B表符合条件的结果集显示出来,不符合条件的用NULL表示。2.A RIGHT OUTER JOIN B表示把B表的记录都显示出来,把A表符合条件的结果集显示出来,不符合条件的用NULL表示。3.A FULL OUTER JOIN B 表示把A表和B表的记录都显示出来,不符合条件的用NULL表示。

 

实例:

[TEST@ORA1] SQL>select * from a;

编号 姓名
---- ----------
1000 张三
2000 李四
3000
[TEST@ORA1] SQL>select * from b;
编号 商品
---- ----------
1000 电视机
2000 录像机
4000 自行车
[TEST@ORA1] SQL>set null 空值--这里为了显示方面我把NULL定义成了[空值]
[TEST@ORA1] SQL>select a.*,b.* from a inner join b on a.编号=b.编号;
编号 姓名 编号 商品
---- ---------- ---- ----------
1000 张三 1000 电视机
2000 李四 2000 录像机
[TEST@ORA1] SQL>select a.*,b.* from a left join b on a.编号=b.编号;
编号 姓名 编号 商品
---- ---------- ---- ----------
1000 张三 1000 电视机
2000 李四 2000 录像机
3000 空值 空值
[TEST@ORA1] SQL>select a.*,b.* from a right join b on a.编号=b.编号;
编号 姓名 编号 商品
---- ---------- ---- ----------
1000 张三 1000 电视机
2000 李四 2000 录像机
空值 空值 4000 自行车
[TEST@ORA1] SQL>select a.*,b.* from a full join b on a.编号=b.编号;
编号 姓名 编号 商品
---- ---------- ---- ----------
1000 张三 1000 电视机
2000 李四 2000 录像机
3000 王五 空值 空值
空值 空值 4000 自行车
---

转载于:https://www.cnblogs.com/Impulse/p/5045872.html

你可能感兴趣的文章
WPF中动态创建DataTemplate
查看>>
hive优化
查看>>
MFC message routine
查看>>
分布式事务的CAP理论 与BASE理论
查看>>
当前集中精力,解决signal Segmentation fault (11)问题。。
查看>>
Node.js项目APM监控之New Relic
查看>>
C# 数组Array
查看>>
System.AppDomain.CurrentDomain.BaseDirectory总是取得根目录
查看>>
Linux服务器---设置服务启动
查看>>
数据的输入
查看>>
iOS-打包成ipa
查看>>
[POJ2184] Cow Exhibition
查看>>
Mysql my.cnf配置文件记录
查看>>
spring aop环绕通知
查看>>
Linux的帮助文档命令
查看>>
netty tcp(ws)鉴权2个方案
查看>>
jacascript 原生选项卡插件
查看>>
Python中的字符串及其相关操作
查看>>
php_mvc实现步骤七
查看>>
angular 组件之间传值
查看>>