标签搜索

SQL中的 join 操作

海绵
2022-04-14 / 0 评论 / 11 阅读 / 正在检测是否收录...

SQL中的 join 操作

题目如下

A表目前有100万数据,B表10条数据,根据关联键匹配 A 表中的数据与 B 表中的数据管关联关系一一对应,A表中能关联上48万数据。B表中能关联上的数据为5条。那么问:A inner join B、A left join B、A right join B、A full join B 的连接方式,最终查询出的数据量分别是多少。

答案:

A inner join B ——》 48万

A left join B ——》 100万

A right join B ——》 48万 + 5

A full join B ——》 100万 + 5

稍微解析一下。inner join 是返回两者的公共部分。因为是 A 表做基准。A中能关联上 48 万 条。所以答案是 48 万。

第二个是 返回左边能关联上的,加没有关联上的。100 万。倘若 B 中存在重复的,条数就不是 100 万了,得看具体的情况了。

第三个是 返回右表关联上的,加上没关联上的。A表中能关联上48万数据。B表中能关联上的数据为5条。这里可以理解上 A 表中的 48 万条数据关联 右表的五条数据。这里就是 48 万 + 5 条 。

第四个是 完全 join 的,具体可以看图。100 万 + 5 条。可以理解成 A 表的全部 然后加上 B 表没有关联上的数据。

image-20220328161711230

上图是各种的 join 操作的示意图。以左表为基准,去扫描另外一个表的全部函数,一行行去匹配。

0

打赏

海报

正在生成.....

评论 (0)

取消