博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
13.JOIN
阅读量:4576 次
发布时间:2019-06-08

本文共 1607 字,大约阅读时间需要 5 分钟。

SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据

CREATE TABLE IF NOT EXISTS zz0 (

number INT(11));
CREATE TABLE IF NOT EXISTS zz1 (
number INT(11));
INSERT INTO zz0 (number) VALUES(111111);
INSERT INTO zz0 (number) VALUES(222222);
INSERT INTO zz0 (number) VALUES(888888);
INSERT INTO zz1 (number) VALUES(333333);
INSERT INTO zz1 (number) VALUES(444444);
INSERT INTO zz1 (number) VALUES(555555);
hive> select * from zz0;
111111
222222
888888
hive> select * from zz1;
111111
333333
444444
888888
1.在表中存在至少一个匹配时,INNER JOIN 关键字返回行。注释:INNER JOIN 与 JOIN 是相同的。
hive> select * from zz0 join zz1 on zz0.number = zz1.number;
111111  111111
888888  888888

INNER JOIN 关键字在表中存在至少一个匹配时返回行。如果 "zz1" 中的行在 "zz0" 中没有匹配,就不会列出这些行。

 

2.LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。注释:在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN。

hive> select * from zz0 left outer join zz1 on zz0.number = zz1.number;

111111  111111
222222  NULL
888888  888888

3.RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。注释:在某些数据库中, RIGHT JOIN 称为 RIGHT OUTER JOIN。

hive> select * from zz0 right outer join zz1 on zz0.number = zz1.number;
NULL
111111  111111
NULL    333333
NULL    444444
888888  888888

4.FULL JOIN 关键字 只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。

hive> select * from zz0 full outer join zz1 on zz0.uid = zz1.uid;
NULL
111111  111111
222222  NULL
NULL    333333
NULL    444444
888888  888888

FULL JOIN 关键字会从左表 (zz0) 和右表 (zz1) 那里返回所有的行。如果 "zz0" 中的行在表 "zz1" 中没有匹配,或者如果 "zz1" 中的行在表 "zz0" 中没有匹配,这些行同样会列出。

hive> select * from zz0 left semi join zz1 on zz0.uid = zz1.uid;
111111  111111
888888  888888

 

转载于:https://www.cnblogs.com/yejibigdata/p/6376070.html

你可能感兴趣的文章
Spark常用算子详解
查看>>
JAVA_桥接模式
查看>>
C语言 strcpy,memcpy,memmove,memccpy函数
查看>>
C语言一个小程序的bug疑问 数组相关[已解决]
查看>>
几种排序算法(PHP版)
查看>>
数据库字段数据类型对索引的影响
查看>>
mesos cluster
查看>>
Altium Designer 中差分走线
查看>>
linux 解压缩命令
查看>>
GDUT校赛
查看>>
(HDU)1076 --An Easy Task(简单任务)
查看>>
团队精神与集体主义的区别?
查看>>
Spring Boot 入门(Spring Cloud方向)
查看>>
AngularJS(九):路由
查看>>
GPS.NET 和 GeoFramework开源了
查看>>
汇编:采用址表的方法编写程序实现C程序的switch功能
查看>>
AtiveMQ初次连接的 http error:503 连接错误 Prolem accessing /.Reason : Service Unavailable...
查看>>
OFO和摩拜共享单车
查看>>
Linux软件安装管理之1——rpm命令管理
查看>>
关于 Failed to establish a new connection: [Errno 11004] getaddrinfo failed',))的问题
查看>>