HiveSQL DQL joinとunion
1784 ワード
3.3 joinクエリー
複数のテーブルをフィールドで関連付け、クエリー結果を形成してstudent_を作成します.locationテーブル、学生の地理的位置情報を格納する
構築student_locationテーブルデータ
student_へのデータのロードlocationテーブル
joinクエリー例inner join左テーブルと右テーブルが結合条件を満たすデータをすべてクエリー
left outer joinは左の表を主とし、左の表のデータをすべて保持し、関連付けられていない上のデータフィールドをNULLに設定する
right outer joinは右の表を主とし、右の表のデータをすべて保持し、関連付けられていない上のデータフィールドをNULLに設定する
full outer join関連付けられていないデータフィールドはすべてNULLに設定
3.4union
union allはすべてのテーブルデータを完全に重ねて、重くしません.要件:すべてのテーブルのフィールドとタイプが完全に一致しています.studentとstudent_でouterテーブルを例に
Unionはすべてのテーブルデータを完全に重ねて、全体的に重くします.要件:すべてのテーブルのフィールドとタイプが完全に一致しています.studentとstudent_でouterテーブルを例に
複数のテーブルをフィールドで関連付け、クエリー結果を形成してstudent_を作成します.locationテーブル、学生の地理的位置情報を格納する
CREATE TABLE student_location( id string comment 'stdno',
province string comment 'province name', city string comment 'city name',
region string comment 'region name'
)
comment 'student location info' ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t' LINES TERMINATED BY '
'
構築student_locationテーブルデータ
001
student_へのデータのロードlocationテーブル
LOAD DATA LOCAL INPATH './student_location.txt' OVERWRITE INTO TABLE student_location;
joinクエリー例inner join左テーブルと右テーブルが結合条件を満たすデータをすべてクエリー
select * from student
inner join student_location
on student.id=student_location.id;
left outer joinは左の表を主とし、左の表のデータをすべて保持し、関連付けられていない上のデータフィールドをNULLに設定する
select * from student
left outer join student_location
on student.id=student_location.id;
right outer joinは右の表を主とし、右の表のデータをすべて保持し、関連付けられていない上のデータフィールドをNULLに設定する
select * from student
right outer join student_location
on student.id=student_location.id;
full outer join関連付けられていないデータフィールドはすべてNULLに設定
select * from student
full outer join student_location
on student.id=student_location.id;
3.4union
union allはすべてのテーブルデータを完全に重ねて、重くしません.要件:すべてのテーブルのフィールドとタイプが完全に一致しています.studentとstudent_でouterテーブルを例に
select * from student
union all
select * from student_outer;
Unionはすべてのテーブルデータを完全に重ねて、全体的に重くします.要件:すべてのテーブルのフィールドとタイプが完全に一致しています.studentとstudent_でouterテーブルを例に
select * from student
union
select * from student_outer;