位置: 编程技术 - 正文

SQL的Join使用图解教程(sql,join)

编辑:rootadmin
对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章(实在不清楚为什么Coding Horror也被墙)通过 文氏图 Venn diagrams 解释了SQL的Join。我觉得清楚易懂,转过来。 假设我们有两张表。 Table A 是左边的表。 Table B 是右边的表。 其各有四条记录,其中有两条记录是相同的,如下所示: 下面让我们来看看不同的Join会产生什么样的结果。

SELECT * FROM TableAINNER JOIN TableBON TableA.name = TableB.name

id name id name-- ---- -- ----1 Pirate 2 Pirate3 Ninja 4 NinjaInner join产生的结果集中,是A和B的交集。

SELECT * FROM TableAFULL OUTER JOIN TableBON TableA.name = TableB.name

id name id name-- ---- -- ----1 Pirate 2 Pirate2 Monkey null null3 Ninja 4 Ninja4 Spaghetti null nullnull null 1 Rutabaganull null 3 Darth VaderFull outer join 产生A和B的并集。但是需要注意的是,对于没有匹配的记录,则会以null做为值。

SELECT * FROM TableALEFT OUTER JOIN TableBON TableA.name = TableB.name

id name id name-- ---- -- ----1 Pirate 2 Pirate2 Monkey null null3 Ninja 4 Ninja4 Spaghetti null nullLeft outer join 产生表A的完全集,而B表中匹配的则有值,没有匹配的则以null值取代。

SELECT * FROM TableALEFT OUTER JOIN TableBON TableA.name = TableB.nameWHERE TableB.id IS null

id name id name-- ---- -- ----2 Monkey null null4 Spaghetti null null产生在A表中有而在B表中没有的集合。

SELECT * FROM TableAFULL OUTER JOIN TableBON TableA.name = TableB.nameWHERE TableA.id IS nullOR TableB.id IS null

id name id name-- ---- -- ----2 Monkey null null4 Spaghetti null nullnull null 1 Rutabaganull null 3 Darth Vader产生A表和B表都没有出现的数据集。

还需要注册的是我们还有一个是“交差集” cross join, 这种Join没有办法用文式图表示,因为其就是把表A和表B的数据进行一个N*M的组合,即笛卡尔积。表达式如下: 这个笛卡尔乘积会产生 4 x 4 = 条记录,一般来说,我们很少用到这个语法。但是我们得小心,如果不是使用嵌套的select语句,一般系统都会产生笛卡尔乘积然再做过滤。这是对于性能来说是非常危险的,尤其是表很大的时候。

推荐整理分享SQL的Join使用图解教程(sql,join),希望有所帮助,仅作参考,欢迎阅读内容。

SQL的Join使用图解教程(sql,join)

文章相关热门搜索词:sql几种join用法,sql语句join on用法,sql的join语句,sql,join,sql各种join用法详解,sql各种join用法详解,sqljoin的用法,sql,join,内容如对您有帮助,希望把文章链接给更多的朋友!

SQL中JOIN和UNION区别、用法及示例介绍 1.JOIN和UNION区别join是两张表做交连后里面条件相同的部分记录产生一个记录集,union是产生的两个记录集(字段要一样的)并在一起,成为一个新的记录集

关于SQL中CTE(公用表表达式)(Common Table Expression)的总结 一.WITHAS的含义WITHAS短语,也叫做子查询部分(subqueryfactoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,

SQL临时表递归查询子信息并返回记录的代码 declare@Q_IDuniqueidentifierset@Q_ID=dbo.uf_GetParamValueByName(@Params,'@指标ID');declare@QAExp_IDchar()--指标属性公式IDset@QAExp_ID='3D2B8F3F-0B7E-FD-9B-FC'declare@temp_qidta

标签: sql,join

本文链接地址:https://www.jiuchutong.com/biancheng/348166.html 转载请保留说明!

上一篇:SQL Transcation的一些总结分享

下一篇:SQL中JOIN和UNION区别、用法及示例介绍(sql union和join区别)

  • 盈余公积转增资本会影响所有者权益吗
  • 金蝶财务软件年末结账步骤
  • 房租雇东不开发票只有收据怎么处理?
  • 对方发票丢了能报销吗
  • 收到存款利息怎么写分录
  • 技术合同免税备案流程2022年
  • 净资产增加额计算公式
  • 即将发生坏事的预兆
  • 软件开发里面的人天
  • 个体户定额交税还用交个税吗
  • 开票资料都包括什么内容
  • 总公司可以给分公司买车吗
  • 如何简单区分坏人和坏人
  • 已认证未抵扣什么意思
  • 代扣代缴增值税纳税义务发生时间
  • 开出银行汇票支付手续费
  • 代发工资开票内容
  • 扶贫费用事业单位账务处理怎么做?
  • 计提房屋折旧会计分录
  • 以银行存款退还投资者股金
  • 个体广告用去税务报账吗?
  • 开了红字发票税额已经缴纳怎么做账?
  • 会计调账有哪些方式
  • 发票进项抵扣有什么用
  • 公司给供电局转账违法吗
  • 对方公司只能开发票吗
  • 免租期间房产税计税依据
  • 出口报关单中有哪些内容
  • 冲减材料采购成本
  • 计提代扣代缴个税
  • 怎么操作win10系统
  • 销售差异计算公式
  • 圣伊利亚斯山
  • 全网最详细的破解卡密软件教程[2021首发]
  • 贷款损失准备的会计核算
  • php生成csv文件
  • 高温补贴需要缴纳社会保险费吗
  • 新会计准则计入管理费用的税费
  • 销售退回会计处理与税务处理
  • 会计记账的内容
  • js监听hover
  • 以前年度应扣未扣支出专项申报表
  • 增值税纳税人的相关规定
  • 集成代码
  • 白酒赠送消费税计算
  • java泛型类和泛型方法
  • 企业从政府部门辞职流程
  • 应收的货款
  • 维修费开专票怎么做账
  • 一次性伤残补助金怎么查询进度
  • 下列行为免征增值税的有
  • 对公账户的钱都可以取吗
  • 自产产品用于职工福利按什么价格
  • 按差额缴纳增值税
  • 业务招待费汇算清缴填哪个表
  • 股东分红的会计分录怎么做
  • 内账收入如何确认
  • 招标代理公司用哪个版本什么意思
  • 资产减值损失属于损益类的收入还是费用
  • 定期存款放入哪个会计科目
  • 个体户做账流程新手必看
  • 固定资产的核算包括
  • 如何定义是应付还是应付
  • windows2008 iis7如何取消目录执行权限的详细图文介绍
  • redhat linux6.5安装教程
  • centos解压软件
  • win10增加右键菜单
  • mac系统字体大小设置
  • Win10系统中怎么用vba控制鼠标
  • rsync -i
  • linux系统变卡慢了
  • win8如何切换用户登录
  • linux目录结构创建
  • win7关机没有强制关机选项
  • qt for 安卓
  • 临沂国税地税局领导班子
  • 税务师事务所牌匾
  • 岗位回避什么意思
  • 养猪环保局有什么新政策
  • 运输类增值税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设