数据整合sql两表连接

这篇博客详细介绍了SQL中的两表连接操作,包括纵向连接表和横向连接表。纵向连接通过并、交、差集操作实现,而横向连接则涉及交叉连接、内连接、外连接(左连接、右连接和全连接)。内容强调了各种连接方式在实际使用中的特点和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

纵向连接表

集合查询—并、交、差

将两张表中的记录看作一个集合,则

  • 并集是两张表中重复的记录只保留一份,不重复都保留
  • 交集是只保留一份重复的记录
  • 差集是只保留表1中不重复的记录保留

SQL 操作会生成一个中间表(intermediate result set)

注意,union后面没有跟随all选项,因此剔除重复值

最后结果

横向连接表

  • 交叉连接(cross join,笛卡尔乘积):查询结果包括两张表观测的所有组合情况,这是SQL实现两表合并的基础,但是极少单独做这种操作
  • 内连接(inner join):查询结果只包括两张表向匹配的观测,用法简单,但是在数据分析中谨慎使用,因为会造成样本的缺失
  • 外连接(outer join)包括左连接、右连接,全连接

笛卡尔积

内连接

内连接在笛卡尔积基础之上加入了连接条件,其实就是限制条件,这类似单表操作中对观测进行筛选

左连接

左连接等价于两部分的叠加:内连接+左表中没有匹配的观测

右连接

等价于两部分的叠加:内连接+右表中没有匹配的观测

全连接

全连接等价于三部分的叠加:内连接+左表中没有匹配的观测+右表中没有匹配的观测

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值