根據工作中經驗總結出來 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...