Hive 關聯查詢

2022-07-17 04:03:11 字數 1467 閱讀 9332

一 表結構

1.1 醫生主表

1.2 醫生服務次數表

二 left join查詢

1.1 on後面加and條件

1.1.1 sql語句

1.1.2 查詢結果

1.1.3 執行計畫

1.2 把條件放在where後面

1.2.1 sql語句

1.2.2 查詢結果

1.2.3 執行計畫

1.3 子查詢

1.3.1 sql語句

1.3.2 查詢結果

1.3.3 執行計畫

三 總結

1.不考慮where條件下,left join 會把左表所有資料查詢出來,on及其後面的條件僅僅會影響右表的資料(符合就顯示,不符合全部為null)

2.在匹配階段,where子句的條件都不會被使用,僅在匹配階段完成以後,where子句條件才會被使用,它將從匹配階段產生的資料中檢索過濾

3.所以左連線關注的是左邊的主表資料,不應該把on後面的從表中的條件加到where後,這樣會影響原有主表中的資料

4.where後面:是先連線然生成臨時查詢結果,然後再篩選

on後面:先根據條件過濾篩選,再連線生成臨時查詢結果

5.對於條件在on加個and還是用子查詢,查詢結果是一模一樣的,至於如何使用這個需要分情況,用子查詢的話會多乙個maptask,但是如果利用這個子查詢能過濾到很多資料的話,用子查詢還是比較建議的,因為不會載入太多的資料到記憶體中,如果過濾資料不多的情況下,建議用on後面加and條件

HIVE當中的關聯查詢

在hive中沒有外來鍵和主鍵之分。但是可以進行多表關聯查詢 值關聯 只要這兩個值相等就可以作為關聯條件,其實在mysql中也是支援。mysql中的關聯查詢 left join 左連線 right join 右連線 innerjoin 全連線 內連線 t user id name 1 zs 2 ls ...

mysql關聯查詢去重 MySQL 關聯查詢

mysql 關聯查詢 sql資料分析 1週前 mysql 關聯查詢 前面,我們介紹的都是單錶查詢 就是只從一張表中獲取資料 而實際應用的時候,我們都會同時查詢多張表,這裡,我們就介紹下,多表關聯查詢的使用。sql join 用於根據兩個或多個表中的列之間的關係,從這些表中查詢資料 前置知識 主鍵 p...

表關聯查詢

一 內連線和外連線 內連線用於返回滿足連線條件的記錄 而外連線則是內連線的擴充套件,它不僅會滿足連線條件的記錄,而且還會返回不滿足連線條件的記錄,語法如下 oracle 1.select table1.column,table2.column from table1 inner left right...