数据整合sql两表连接
纵向连接表
集合查询—并、交、差
将两张表中的记录看作一个集合,则
- 并集是两张表中重复的记录只保留一份,不重复都保留
- 交集是只保留一份重复的记录
- 差集是只保留表1中不重复的记录保留
SQL 操作会生成一个中间表(intermediate result set)
注意,union后面没有跟随all选项,因此剔除重复值
最后结果
横向连接表
- 交叉连接(cross join,笛卡尔乘积):查询结果包括两张表观测的所有组合情况,这是SQL实现两表合并的基础,但是极少单独做这种操作
- 内连接(inner join):查询结果只包括两张表向匹配的观测,用法简单,但是在数据分析中谨慎使用,因为会造成样本的缺失
- 外连接(outer join)包括左连接、右连接,全连接
笛卡尔积
内连接
内连接在笛卡尔积基础之上加入了连接条件,其实就是限制条件,这类似单表操作中对观测进行筛选
左连接
左连接等价于两部分的叠加:内连接+左表中没有匹配的观测
右连接
等价于两部分的叠加:内连接+右表中没有匹配的观测
全连接
全连接等价于三部分的叠加:内连接+左表中没有匹配的观测+右表中没有匹配的观测