如何用HIVE进行全连接 |
您所在的位置:网站首页 › hive两个表关联 › 如何用HIVE进行全连接 |
先说说期望的效果,希望是左表和右表连接,用ID关联。如果只出现左边的数据那么就显示只有左边的数据,如果只出现右表的数据就显示右表的信息,如果都出现就以左表的字段为准。
首先让我们创建一个左边,包含两列: CREATE TABLE dcp_dw_datamining.temp_a_outer ( id INT, label STRING );接着左边插入三条数据: INSERT INTO dcp_dw_datamining.temp_a_outer VALUES (1,'a1'),(2,'a2'),(3,'a3');
接着创建一个右表: CREATE TABLE dcp_dw_datamining.temp_b_outer ( id INT, label STRING, lb STRING ); 接着右表插入三条数据: INSERT INTO dcp_dw_datamining.temp_b_outer VALUES (1,'b1','f1'),(2,'b2','f2'),(4,'b4','f4');如果左表和右表使用INNER JOIN的语句是: SELECT a.id, a.label, b.lb FROM dcp_dw_datamining.temp_a_outer AS a JOIN dcp_dw_datamining.temp_b_outer AS b ON a.id = b.id结果如下,与希望的结果并不一致: 最后修改成这样: SELECT CASE WHEN a.id IS NULL THEN b.id ELSE a.id END AS id, CASE WHEN a.label IS NULL THEN b.label ELSE a.label END AS label, b.lb FROM dcp_dw_datamining.temp_a_outer AS a FULL OUTER JOIN dcp_dw_datamining.temp_b_outer AS b ON a.id = b.id
|
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |