位置: 编程技术 - 正文

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

  • 金税盘服务费全额抵扣
  • 所得税分录是怎么计算的
  • 挂车和牵引车如何选
  • 企业的书报费应计入销售费用
  • 以前年度费用退回怎么做账
  • 学校食堂支出
  • 隔年的发票能冲销吗
  • 合同上怎么注明开具6%的含税普通发票
  • 索赔怎么开票
  • 合同方和付款方不一致,发票开付款方可以吗
  • 超市费用能否税前扣减?
  • 开发商买商铺
  • 扣员工工会会费
  • 出口退税对企业利润的影响
  • 中药饮片适用增值税税率
  • 建筑企业员工培训
  • 差额征税条件
  • 企业间借款利息开票税目
  • 什么叫管理口径报表
  • 生产型企业进出口初申报流程
  • 软件公司客户经理一般月薪多少
  • 苹果手机m开头的序列号代表什么
  • 年报的企业主营业务活动
  • 非应纳增值税项目
  • php socket函数
  • PHP:Memcached::appendByKey()的用法_Memcached类
  • 企业是根据什么来分类的
  • PHP:imagefontwidth()的用法_GD库图像处理函数
  • 关于出售使用过的东西
  • php使用什么开发工具
  • zend框架教程
  • 纳税调整项目明细表30行怎么填写
  • php curl cookie
  • laravel 5.3中自定义加密服务的方案详解
  • 用php生成一个txt文件
  • yum安装php5
  • python3.9.4怎么用
  • 合理损耗如何计算成本
  • 待处理财产损益期末结转到哪里
  • 外商独资企业资本金要求
  • mysql存储过程 游标
  • 织梦如何开启会员功能
  • 小微企业短小频急
  • 营改增后材料价差调整
  • access数据库用户名和密码
  • 销售赠送赠品会计处理
  • sql怎么搜索表
  • 固定资产内部抵扣增值税
  • 会计账簿记账规范要求
  • 如何暂估费用会计分录
  • 对公账户存款利息分录
  • 普票不开明细可以不
  • 已认证未抵扣的发票可以退回红冲吗
  • 房产公司销售成本怎么算
  • 会计中的资金
  • mysql数据库的总结
  • diskgenius_winpe文件夹能删吗
  • xp系统操作全程图解
  • ubuntu 04 10
  • win7的wifi功能在哪
  • win7激活后grub
  • surface pro7应用
  • win7系统和win8系统哪个好用
  • linux shell脚本实例
  • 被人遗忘的明星
  • Unity3D游戏开发标准教程
  • 第四章之BootStrap表单与图片
  • js设计模式书
  • node.js教学
  • linux dig命令
  • JavaScript 2048 游戏实例代码(简单易懂)
  • android适配器是什么意思
  • unity每秒执行一次
  • python 很简单
  • jquery td
  • js实现商品分类
  • div怎么求
  • jquery课程内容总结
  • 江西医保缴费怎么交
  • 车辆保险代收车船税会计分录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设