位置: 编程技术 - 正文

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区别)

  • 购销合同印花税计税金额含税吗
  • 生产型企业出口退税账务处理
  • 建筑垃圾清运费税率是多少
  • 疫情期间社保单位不交个人吃亏吗
  • 所得税营业成本包括税金及附加吗
  • 公司付给中间人居间费用如何纳税
  • 代缴水电费如何做账
  • 股东分红是净利润还是毛利润
  • 房屋中介机构可以资金托管吗
  • 湖北工会工作网
  • 非居民企业股权转让所得税
  • 劳务报酬所得怎么扣税
  • 材料短缺赔偿会计分录怎么写?
  • 品种法在制造企业中的运用
  • 单位之间借款利息可以开票么
  • 筹建期的行政罚款的账务处理怎么做?
  • 哪些员工福利可以让企业合理避税
  • 发票纳税人识别号错了能重新开吗
  • 发生破损
  • 银行手续费可以汇总记账吗
  • 运输公司租赁车辆怎么做账
  • 华为手机hms提醒
  • 年度企业所得税申报表在哪里打印
  • 异地项目不预缴税款可以开票吗
  • 赔偿金要交增值税吗
  • 固定资产更新改造支出计入什么科目
  • 企业加计扣除活动
  • 最强笔记本2021
  • 套期工具的会计分录
  • 个体户不建账怎样处罚
  • 一般户和专户可以同一个网点吗
  • 数据模型 excel
  • 稿酬的支付方式
  • mysql命令行如何命令行导出查询结果并导入
  • SQL SERVER 将XML变量转为JSON文本
  • 零申报年报需要哪些表格
  • 企业月末在产品数量变化不大时,最适宜
  • sqlserver阻止保存要求重新
  • 经审计的财务报表是否要会计师事务所盖章
  • 停车位划线费用入什么科目
  • 母公司溢价收购子公司
  • 消费税也是流转税吗
  • 财务分析与财务管理的共同点
  • 现金流量少
  • 小企业会计准则坏账怎么处理
  • 土地拍卖相关法律法规
  • 村集体经济组织架构
  • 缴纳社保需要办理什么手续
  • 基本医疗保险费是医保吗
  • 出租车费用分录
  • 折扣 会计
  • 开票操作流程是什么
  • 单位车辆保险费
  • 国家对民办幼儿园审批的条件有哪些?
  • 隔离模块与隔离模块如何连接?
  • 服务器 安装win10
  • 还原windows是什么意思
  • win7推送win10
  • win8 防火墙
  • win10系统怎么设置电脑密码
  • linux文件压缩和解压缩命令
  • 微软报错是什么意思
  • “0x018b0b20”指令引用的“0×00000000”,该内存不能为“written”问题解决方法
  • 虚拟机里面如何设置网络
  • host文件没有
  • Win10控制面板打不开
  • linux修改22端口号
  • js正则用法
  • Immutable 在 JavaScript 中的应用
  • bash脚本语法
  • debug命令及其基本操作
  • javascript解决了什么问题
  • 样式默认有几种修改格式
  • 高仿微信本地图片违法吗
  • angular使用
  • linux中crontab
  • python求解析解
  • jquery自定义表单
  • 营改增后租金如何交税
  • 企业税费如何计算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设