HIVE LEFT JOIN的坑


最近在做一個數據關聯處理分析需求,涉及left表right表LEFT JOIN,發現LEFT JOIN后的結果條數比left表的記錄多不少。

於是查看結果明細發現最終的結果,不少都是重復的。

最終確定是left 表和right表是一對多的關系,或者說right表有重復的記錄也是一樣的效果。

於在本地mysql中創建了兩個測試表left_join_test和joinids_test測試,如下:

 

 

 

最終結果:

 

 

總結:

1、mysql的left join從兩個表中聯合查詢數據,以左表為主,右表為輔。如果左表中有的內容右表中沒有,則用null填充,這是大家都很容易理解的。

2、右邊有重復數據(多條數據對應左邊表一條數據)時,右邊的數據會全部保留,導致最終的結果出現重復關聯。這時就要根據實際情況把右表的記錄去重,比如使用distinct 、group by 等處理,最終結果也可以使用GROUP_CONCAT()、count()等連接聚合函數處理

 


免責聲明!

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



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