位置: 编程技术 - 正文

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

  • 增值税专用发票的税率是多少啊
  • 养鸡增值税税率是多少
  • 怎么添加临时办社保卡
  • 夏天单位发防暑物品的通知
  • 商业折扣和现金折扣的入账金额
  • 如何查询对方是不是一般纳税人
  • 税控盘反写显没有数据怎么处理
  • 家属机票怎么办理
  • 劳务所得报酬
  • 营业执照年审后日期会变吗
  • 应付账款扣除商业折扣
  • 多付车款退回怎么做账
  • 无发票材料可以入材料账吗
  • 个人所得税如果换公司怎么办
  • 合资公司51%股东的权限
  • 金融机构往来利息支出
  • 个人保证金业务
  • 土地使用税与房产税的区别
  • 房地产开发企业取得的土地使用权用于建造
  • 处置子公司合并抵消
  • 代收代缴水电费能开发票吗
  • 同比增长率为负数怎么算
  • 制造业增值税加计抵减
  • 公司与股东的往来款现金流量表
  • 软件远程调用失败是什么意思
  • 收到外运公司托收海运运费单据1000美元
  • PHP:mb_encode_numericentity()的用法_mbstring函数
  • 代办营业执照费用税务编码是多少
  • 结算应付职工薪酬怎么算
  • cesium三维地球
  • jquery 批量删除
  • 加计扣除的增值税,城建税怎么算
  • echartx轴刻度设置
  • mysql_escape_string()函数用法分析
  • 人工智能导论论文2000字
  • 面试官问:mysql 的自增 id 用完了,怎么办?
  • modprobe operation not permitted
  • thinkphp官网
  • lnewusers命令 创建用户账号
  • 邮寄的发票对方没收到怎么办
  • 固定资产租赁费发票增值税税率
  • 用友重新安装步骤
  • 递延收益期限
  • 只开发票没有合同也要印花税吗
  • 抵扣税款
  • 公司为职工提供免费午餐需要交纳个人所得税吗?
  • 自产赠送视同销售的成本如何确定?
  • 上期留抵税额可以留多久
  • 现金冲账是什么意思
  • 购买原材料例题
  • 防伪公司应该选用什么目标市场策略
  • 酒店会计的账务处理
  • 发票税号与公司税号不一致
  • 库存商品盘点流程
  • 企业支付宝提现到对公账户要交税吗
  • 开服装店如何做销售
  • 存货跌价准备怎么结转成本
  • 零售商品销售的具体核算步骤
  • 高效的sql语句
  • centos重启动停在4m
  • fsrremos.exe
  • windows8.1开始
  • paytime.exe - paytime是什么进程 有什么用
  • 升级win10错误
  • python djang
  • opengl实现光线追踪
  • android网络请求时怎么取消
  • 离线安装驱动
  • javascript获取当前文件夹文件数量
  • Jar mismatch! Fix your dependencies
  • javascript要怎么学
  • androidsdk的计算机
  • jsonobject.parseobject异常
  • 税务局遴选能去什么单位
  • 安徽省电子税务局怎么添加办税人员
  • 教师票优惠需要交税吗
  • 惠州市房产交易税费征收标准
  • 重庆国税局客服电话
  • 湖北注册税务师协会
  • 拟录用是正式录用吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设