位置: 编程技术 - 正文

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

  • 属于印花税征税对象的是
  • 房屋租赁的发票备注怎么写
  • 合同负债属于负债吗
  • 电子税务局怎么登录
  • 销售补差怎么做分析
  • 银行贷款受托支付后,钱怎么转回来
  • 非增值税应税项目可以抵扣进项税吗
  • 票据到期兑付会怎么样
  • 以旧换新销售货物的增值税处理
  • 应收账款计提坏账后收回
  • 企业职工福利费标准是什么
  • 利润分配亏损太多如何处理?
  • 利润表中企业所得税
  • 普通发票电子发票没有章
  • 什么发票可以用来抵税
  • 自产自销税点
  • 同一个行政区
  • 国家税务总局公告2023年第1号
  • 免税投资背后的风险,你都清楚吗?
  • 商标是按年交费的吗
  • 收到社保补贴计入什么科目
  • 交易性金融资产属于流动资产吗
  • 少计提增值税0.01计入营业外
  • 老板垫付的货款怎么做凭证?
  • bios密码忘记了怎么清除,放电不行
  • 一般纳税人减免性质代码怎么填写
  • linux 如何查看网卡信息
  • 原材料暂估入账产生的差异如何处理
  • 知识产权 申请
  • 重庆四日游最佳攻略超详细
  • 跨年度费用应如何计算
  • 合同已无法履行
  • 个税手续费反还
  • 销售旧设备如何开票
  • 无销售发票的基本户收入?
  • sbdrvdet.exe - sbdrvdet是什么进程 有什么用
  • 十个php高级应用题
  • 企业记账的主要内容包括
  • 基于Python的flask百战电商流程图
  • 如何设置长期有效的群二维码安卓手机
  • 税收优惠方式有几种
  • 长期待摊费用应该怎么摊销
  • vue的样式穿透
  • php curl_init
  • trace命令详解
  • phpcms怎么用
  • 三栏式明细账对方科目有多个怎么办
  • 计提年终奖的会计分录
  • 企业资产的范围
  • 股东个人转让股权印花税能入账吗
  • 固定资产折旧常见方法
  • 全年一次性奖金单独计税还是并入
  • 纳税人信息变更 需要变更什么
  • 关于sql的问题
  • 折旧方法计算公式
  • 加计减免其他收入怎么填
  • 建筑行业怎么确认主营业务收入
  • 收取招标代理费的规定
  • 失业保险金的支付方式
  • 固定资产计提折旧是当月还是次月
  • 纳税人办理逾期申报流程
  • sql server错误和使用情况报告
  • 教你怎么使用加油机
  • 新安装的Ubuntu系统无法联网
  • win8.1系统更新
  • javascript运用
  • css模糊滤镜
  • hbuilderx打包app教程
  • jquery validate表单校验html
  • 深入浅出python中文第二版pdf
  • linux使用文本编辑器
  • python下载方法
  • python的字符
  • jquery常用选择器种类
  • jquery 异步加载
  • 浅谈如何加强基层党组织建设
  • jQuery使用ajax跨域获取数据的简单实例
  • 上海电子发票试点
  • 税务个人廉洁谈话记录内容
  • 农业方面有哪些专业
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设