Hive Join详细用法

在这里插入图片描述

内连接 inner join

INNER JOIN基本语法如下:

SELECT tableA.column1, tableB.column2...
FROM tableA  INNER JOIN   tableB
ON tableA.common_field = tableB.common_field;

在这里插入图片描述

左外连接 left join

LEFT JOIN的基本语法如下:

SELECT tableA.column1, tableB.column2...
FROM tableA  LEFT JOIN   tableB
ON tableA.common_field = tableB.common_field;

在这里插入图片描述

右外连接 right join

RIGHT JOIN的基本语法如下:

SELECT tableA.column1, tableB.column2...
FROM tableA   RIGHT JOIN    tableB
ON tableA.common_field = tableB.common_field;

在这里插入图片描述

左连接

从这一个开始,MySQL不提供正式的一步到位的关键字,效果全靠自己模拟。
左连接是得到A表中去除B表内容的剩下的部分,也就是A表独有的一部分。可以看做是在左外连接的结果中将双方共有的部分去掉得到的。
SELECT tableA.column1, tableA.column2…
FROM tableA LEFT JOIN tableB
ON tableA.common_field = tableB.common_field
where tableB.column1 is null limit 10;
在这里插入图片描述

右连接

同理,右连接是在右外连接的结果中得到B表独有的那一部分
SELECT tableB.column1, tableB.column2…
FROM tableA RIGHT JOIN tableB
ON tableA.common_field = tableB.common_field;
where tableA.column1 is null limit 10;

在这里插入图片描述

全连接

全连接顾名思义是获得AB两表全部的数据,oracle提供了 full join关键字完成这一功能,但是MySQL没有。不过MySQL中可以借助union达到这个效果,union的作用是合并两个查询的结果。

select *
from tableA A full outer join tableB B
on A.key = B.key

在这里插入图片描述

差集

两表的全连接中除去重合的部分,即两张表分别的特有部分的合集。

select *
from tableA A
full outer join tableB B
on A.id = B.id
where A.id is null or B.id is null

在这里插入图片描述

发布了216 篇原创文章 · 获赞 181 · 访问量 7322
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览