原創 Hive left join 技巧總結

2022-08-19 00:30:17 字數 908 閱讀 9297

根據工作中經驗總結出來   left  join  常用的  使用注意點:    a     left    join   b    on   a.id =  b.id

第一種情況:   

如果 a 表  的  id  存在  重複, b 表的 id 不存在 重複, 那麼   select * from   a     left    join   b    on   a.id =  b.id,  sql 執行的結果  資料條數    和   a 表  保持一致;

第二種情況:   

如果 a 表  的  id  不存在  重複, b 表的 id 不存在 重複, 那麼   select * from   a     left    join   b    on   a.id =  b.id,  sql 執行的結果  資料條數    和   a 表  保持一致;

第三種情況:   

如果 a 表  的  id  不存在  重複, b 表的 id 存在 重複, 那麼   select * from   a     left    join   b    on   a.id =  b.id,  sql 執行的結果  資料條數    和   a 表  不保持一致,sql出來的條數比a表資料多;

總結:  a     left    join   b    on   a.id =  b.id

1:不管 a表  id  重複不重複,只要 b 表  id 不重複,使用  left  join  結果 準確;

2:如果b表  id 存在 重複,使用  a  left   join  b   之前,務必  對 b  表  進行   id  的  distinct    或者   group  by  操作,保證   b 表 的  id  在  執行  left   join   之前,  id  保持  唯一性; 否則,left  join  出來的 結果是錯誤的。

hive left join 丟失資料

最近在寫hql取資料的時候,發現不同的寫法會模糊left join 和 join,使得得出的結果不是預期的。分別列出三段hql供參考 select a.cola1,a.cola2,b.colb1 from tablea a left join tableb b on a.id b.id where ...

Flex元件開發總結(aierong原創技術隨筆)

1.如何監聽鍵盤事件?private function sendkeyhandler evt keyboardevent void 說明 有兩種型別的鍵盤事件 keyboardevent.key down和keyboardevent.key up 以上是監聽的是回車事件 要是想監聽組合鍵,例如 ct...

Flex元件開發總結(aierong原創技術隨筆)

1.如何監聽鍵盤事件?private function sendkeyhandler evt keyboardevent void 說明 有兩種型別的鍵盤事件 keyboardevent.key down和keyboardevent.key up 以上是監聽的是回車事件 要是想監聽組合鍵,例如 ct...