位置: 编程技术 - 正文

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

  • 加班费要计入个人账户吗
  • 生产型企业进项税加计扣除
  • 基本户如果没有资金往来
  • 政府补贴款需要缴纳增值税
  • 以前年度损益调整结转到哪里
  • 开票打印机可以自己买吗
  • 员工垫资报销记账
  • 一般纳税人的进项税额计入成本吗
  • 给客户多开了发票,下月少开可以吗?
  • 建筑安装业什么时候确认收入
  • 资产负债表货币资金与现金流量表的关系
  • 固定资产房屋原值增加折旧月数怎么算
  • 公司出售自用汽车如何开票
  • 外汇收支申报流程
  • 平销返利怎么开票入账
  • 车改补贴是否计入工资总额
  • 发票少开退回多付的货款怎么入账?
  • 产业扶持周转金退回多久到账
  • 外币账户和外汇账户一样吗?
  • 残保金中的工资总额在哪看
  • 进项发票抵扣范围
  • 材料按实际成本计价核算
  • 废旧物资回收企业税收管理
  • 坏账准备冲回是借方还是贷方
  • 收到供应商发票分录应怎么写?
  • 笔记本电脑的触摸板怎么用右键
  • dolby audio设置
  • win11怎么让任务栏不重叠
  • 资源管理器被关闭了怎么恢复
  • 设置u盘优先启动怎么设置
  • .exe是什么文件
  • 无偿调入固定资产账务处理
  • 外汇收入情况说明
  • win10显示未充电
  • bho是什么文件夹
  • 转让应收账款是否交税
  • 完美解决战网已休眠正在唤醒它
  • 实物资产的管理
  • 费用的结转是在借方还是贷方
  • 应收账款项目在资产负债表怎么填列
  • php和python结合
  • git t
  • redishi
  • 港口公司属于什么性质的单位
  • 库存商品用于研发要进项税额转出吗
  • 非金融企业之间借款
  • 企业接受投资者投资,投资者超额缴入的资本
  • mongodb findandmodify
  • 私车公用可以报销哪些费用
  • 下列项目的进项税额可以从销售税额中抵扣的是
  • 现汇跟承兑有什么区别
  • mysql命令行删除库中的所有表
  • 凭证字号和凭证编号一样吗
  • 进项税额转出分录怎么写,附加的原始凭证是什么
  • 驾驶员培训费纳税吗
  • 工会经费通过应交税费核算吗
  • 计入资本公积的固定资产处置
  • 合并报表非同控为什么调公允
  • 汇算清缴缴纳的所得税怎么做账
  • 赞助支出为什么纳税调整
  • 工会经费是不是税费
  • 企业设备维修
  • 税率调整后税差怎么算
  • 主营业务收入和营业外收入的区别
  • 资产负债率比率
  • 小规模纳税人中标一般计税
  • 非正常损失进项税额转出计算
  • linux系统中用户账户有哪些分类
  • VirtualBox虚拟机中文免费
  • creative cloud怎么用
  • windows10的操作中心
  • win8.1 下 eclipse+android 开发环境配置带图详细教程
  • jquery插件大全
  • js选择框全选
  • javascript高级程序设计最新版
  • 关于两个人感情文案
  • 税务局把我拉入黑名单了怎么办
  • 四川国税发票手机查询
  • 湖北省地方税务局公告2014年第7号
  • 两税法的历史解释
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设