位置: 编程技术 - 正文

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

  • 哪些税种属于中央固定收入
  • 以前多摊销
  • 增值税进项税没那么多,申报表多填
  • 淘宝网店女装
  • 累计折旧影响所得税费用吗
  • 总公司如何分配股份
  • 税控服务费抵税
  • 合伙企业分配利润需要全体合伙人同意吗
  • 企业所得税季度预缴可以弥补以前年度亏损吗
  • 建筑企业会计科目分类及明细表
  • 交通补贴和通讯补贴怎么发合理
  • 收到应收的货款的会计分录
  • 冲回多提所得税
  • 个体没有地址怎么办理执照
  • 出口退税附加税什么时候缴纳
  • 加工企业如何降成本
  • 怎么做销售二手车
  • 生育津贴缴纳
  • 增值税需要计提吗
  • 非居民企业能否认定为一般纳税人
  • 发票涉税风险有哪些
  • 开发票冲销
  • 电子汇票如何使用
  • 向境外支付违约金要代扣税吗
  • 基本户转移到别的银行怎么转移
  • 财务分析的起点是企业的内部分析报告
  • 实物福利计入工资总额
  • 对公工行证书收入摘要写什么
  • 子公司之间固定资产划转 增值税会计处理
  • 税法对开办费的怎么汇算清缴
  • 苹果系统怎么修改开机密码
  • 工会资助贫困大学生
  • 下载的压缩文件打不开
  • 房地产企业将开什么发票
  • PHP:Memcached::isPristine()的用法_Memcached类
  • 特殊性税务处理的条件
  • 微信公众号web开发
  • 会计政策变更追溯调整为什么不影响所得税
  • php调用url
  • php提交post数据
  • js fetch api
  • php连接数据库mysql做登录页
  • sftp 加密算法
  • 升级到miui14感觉耗电快了
  • 酒店会计科目及账务处理视频
  • 结存成本怎么计算先进先出法
  • 小规模纳税人怎么核定税种
  • 帝国cms怎么增加子栏目
  • 会计科目设置怎么操作
  • html前端开发教程
  • dubbo dubbox
  • mysql主要支持哪些数据类型?
  • 在建工程转入固定资产怎么做
  • sqlserver获取数据库名
  • 长期股权投资权益法账务处理
  • 结转销售成本的凭证需要附件吗
  • 增值税销项税额属于什么科目
  • 利息发票如何做会计分录
  • 给员工打了备用金后归还怎么做账
  • 母子公司之间的借款
  • 一般纳税人厂房租赁增值税税率是多少
  • 审核通过的红字信息表可以删除吗
  • 新税法和新准则的关系
  • mysql数据库如何使用
  • MYSQL数据库原理及应用
  • mysql误删记录查询
  • win7桌面和win10桌面
  • 繁体系统安装简体软件
  • linux crontab命令详解
  • vrvprotect.sys
  • win10激活后是什么样子
  • ghost到一半报错
  • win8系统没有wifi
  • win10不支持win7软件怎么办
  • win7怎么查看系统位数
  • python生成器详解
  • 配置ip地址的方法有哪几种
  • 面向对象的三大特征
  • 一般纳税人开租赁费发票税率是多少
  • 长途汽车车次号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设