位置: 编程技术 - 正文

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

  • 什么是进口增值业务
  • 银行共管账户现在可以开设吗
  • 专款专用需要缴纳企业所得税吗?
  • 财产租赁合同金额含税吗
  • 工会经费个人绩效计入缴费基数吗
  • 知道税负率和收入怎么算进项
  • 100%直接控制的母子公司间划转股权或资产
  • 固定资产投资会计处理
  • 收到小微企业补助会计分录
  • 取得虚开增值税专用发票罪
  • 利润分配包括缴纳所得税吗
  • 收到应收的货款的会计分录
  • 无法收回的应收帐款
  • 签订设备维修合同会计分录
  • 法律关系三要素表
  • 福利费不需要发票记账吗
  • 跨年的发票可以冲红重开吗
  • 预提费用 增值税
  • 生产企业出口发票数量开错有什么影响
  • 期初建账实验步骤
  • 金融机构在境外
  • 单位为员工支付医疗费
  • 文件在另一个程序中打开,怎么解决
  • 什么是商务接待与拜访
  • 清除cookies有什么用
  • 税金及附加多计提所得税年报怎么更正
  • hptasks.exe是病毒吗 是什么进程 hptasks进程说明
  • 支付公司保洁费未开发票
  • windows dvd maker是什么
  • php抓取网页内容转换成json
  • bc2.exe
  • php的strcmp
  • 提坏账准备的会计分录 2022
  • 长期股权投资追加投资
  • uniapp打开h5页面
  • php获取操作系统
  • 代开开增值税专票和自己开有什么区别
  • js返回上一步操作
  • css元素居中的几种方法
  • 功能强大的php发展趋势
  • 收到房租怎么做账务处理
  • js读取json配置文件
  • dedecms下载
  • SqlServer中用exec处理sql字符串中含有变量的小例子
  • 收到银行承兑汇票计入什么科目
  • 企业接受捐赠增值税处理
  • 法人股的利弊
  • 股权收购协议书实际案例
  • 一般纳税人购入不动产增值税税率
  • 员工的提成
  • 通货膨胀有什么表现
  • 代扣代缴公积金现金流量
  • 对公支付的款项没有发票怎么报销
  • 农业公司土地租赁
  • 客户手续费率
  • 工程收据怎么开表格
  • 企业缴纳社保要下载什么软件
  • 如何查询公司的营业执照照片
  • 公司给公司的工会拨款
  • mysql 5.5 5.6
  • 未知文件怎么删除
  • Ubuntu14.4下Sublime Text 3无法输入中文解决方法
  • win10光驱无法识别
  • 搜索应用界面
  • ISBMgr.exe - ISBMgr是什么进程 有什么作用
  • win10如何打开ie8
  • win7怎么连接手机上网
  • win7 64位旗舰版设置插上耳机就能播放声音拔下耳机就自动禁音方法
  • win10系统最新更新
  • ftp下载怎么用
  • js类继承的几种方式
  • node.js速成
  • 仿百度首页
  • jquery示例
  • AndroidStudio中aar文件引用
  • 税务案件移送案件的法律条款
  • 陕西税务平台
  • 天津违规养犬的处罚依据
  • 版权登记条件
  • 浙江国地税联合申报系统官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设