Hive--關聯表(join)


在hive中,關聯有4種方式

  • 內關聯:join on
  • 左外關聯:left join on
  • 右外關聯:right join on
  • 全外關聯:full join on

另外還有一種可實現hive笛卡兒積的效果(hive不支持笛卡兒積): 在on后面接為true的表達式,如on 1=1(需先設置非嚴格模式:set hive.mapred.mode=nonstrict);

 

詳細操作和結果如下:

如我有兩個表:join1和join2,如下

 

內關聯:select * from jion1 join join2 on jion1.id = jion2.id;

  • 作用:將表1和表2的字段id相同的內容 關聯到一個表里。
  • 效果如下:

 

 

左外連接:select * from jion1 left join join2 on jion1.id = jion2.id;

  • 作用:以join左邊的表為標准進行連接(即保留左邊表的字段值,右邊表不符合on條件的用null表示)。
  • 效果如下:

 

 

右外連接:select * from jion1 right join join2 on jion1.id = jion2.id;

  • 作用:以join右邊的表為標准進行連接(即保留右邊表的字段值,左邊表不符合on條件的用null表示)。
  • 效果如下:

 

 

全外連接:select * from jion1 full join join2 on jion1.id = jion2.id;

  • 作用:兩個表連接,表留所有字段的值,不符合on條件的用null表示。
  • 效果如下:

 

 

hive的”笛卡兒積“:select * from join1 join join2 on 1=1;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM