日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hive sql中的 各种join(内连接、左外连接、右外连接、满外连接)

發布時間:2023/12/20 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hive sql中的 各种join(内连接、左外连接、右外连接、满外连接) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


join語句

1 等值 join

Hive支持通常的SQL JOIN語句,但是只支持等值連接,==不支持非等值連接==。

案例實操

select * from stu left join score on stu.id = score.s_id;


根據學生和成績表,查詢學生姓名對應的成績

2 表的別名

好處

使用別名可以簡化查詢。

使用表名前綴可以提高執行效率。

案例實操:合并老師與課程表

-- hive當中創建course表并加載數據 create table course (c_id string, c_name string, t_id string)? row format delimited fields terminated by '\t'; ? load data local inpath '/xsluo/install/hivedatas/course.csv' overwrite into table course; ? select * from teacher t join course c on t.t_id = c.t_id;


3 內連接 inner join

內連接:只有進行連接的兩個表中都存在與連接條件相匹配的數據才會被保留下來。

join默認是inner join

案例實操

select * from teacher t inner join course c ?on t.t_id = c.t_id;


4 左外連接 left outer join

左外連接:

join操作符==左邊表中==符合where子句的所有記錄將會被返回。

右邊表的指定字段沒有符合條件的值的話,那么就使用null值替代。

案例實操:查詢老師對應的課程

select * from teacher t left outer join course c on t.t_id = c.t_id;


5 右外連接 right outer join

右外連接:

join操作符==右邊表中==符合where子句的所有記錄將會被返回。

左邊表的指定字段沒有符合條件的值的話,那么就使用null值替代。

案例實操

select * from teacher t right outer join course c on t.t_id = c.t_id;


6 滿外連接 full outer join

滿外連接:

將會返回==所有表中==符合where語句條件的所有記錄。

如果任一表的指定字段沒有符合條件的值的話,那么就使用null值替代。

案例實操

select * from teacher t full outer join course c on t.t_id = c.t_id;


7 多表連接

多個表使用join進行連接

==注意:==連接 n個表,至少需要n-1個連接條件。例如:連接三個表,至少需要兩個連接條件。

案例實操

select * from teacher t? left join course c on t.t_id = c.t_id? left join score s on c.c_id = s.c_id? left join stu on s.s_id = stu.id;


多表連接查詢,查詢老師對應的課程,以及對應的分數,對應的學生
?

總結

以上是生活随笔為你收集整理的Hive sql中的 各种join(内连接、左外连接、右外连接、满外连接)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。