当前位置: 首页 > news >正文

潍坊网站建设top响应式网站 英文

潍坊网站建设top,响应式网站 英文,网站开发 打标签,网站建设公司2018目录 1. 问题描述2. 问题复现3. 问题原因4. 问题解决 1. 问题描述 在Hive中(其他类似SQL,比如PostgreSQL可能也存在此问题),当对多张表(3张及以上)进行full join时,会存在每张表的主键都是唯一…

目录

  • 1. 问题描述
  • 2. 问题复现
  • 3. 问题原因
  • 4. 问题解决

1. 问题描述

在Hive中(其他类似SQL,比如PostgreSQL可能也存在此问题),当对多张表(3张及以上)进行full join时,会存在每张表的主键都是唯一,但当full join后,会发现主键可能有重复。

2. 问题复现

2.1. 插入数据

with   temp1 as (
select  '1' as id ,'张三' as name
union all 
select  '2' as id ,'李四' as name
union all 
select  '3' as id ,'王五' as name
),
temp2 as (
select  '1' as id ,'深圳' as city
union all 
select  '3' as id ,'北京' as city
union all 
select  '4' as id ,'上海' as city
),
temp3 as (
select  '1' as id ,'5000' as salary
union all 
select  '4' as id ,'10000' as salary
union all 
select  '5' as id ,'12000' as salary
)

2.2. 查询SQL以及问题

selectcoalesce(a.id, b.id, c.id) as id, a.name, b.city, c.salary
from temp1 as afull join temp2 as b
on a.id = b.idfull join temp3 as c
on a.id = c.id

当执行如上查询SQL时,会发现其中 id = 4 的数据有重复,如下图所示:
在这里插入图片描述

3. 问题原因

之所以会出现这样的问题,是因为是以a表为主表,但a表中只有 id 为 1、2、3 的数据,但在b表中有id为4,c表中也有id为4,此时full join时,a表会以空值和b表、c表中id为4的数据join,这样关联后的表中就会出现2条id为4的数据;

4. 问题解决

在后续的表full join时,不单单使用第一张表的主键full join(因为是full join,所以肯定会存在第一张表为null,而其他表有值的数据),而使用 coalesce 方法对所有前面已经full join了的主键进行条件关联,如下代码:
方法1:

selectcoalesce(a.id, b.id, c.id) as id, a.name, b.city, c.salary
from temp1 as afull join temp2 as b
on a.id = b.idfull join temp3 as c
on coalesce(a.id, b.id) = c.id

结果如下:
在这里插入图片描述
方法2:

select temp.id, temp.name, temp.city, c.salary
from  
(selectcoalesce(a.id, b.id) as id, a.name , b.city 
from temp1 as afull join temp2 as b
on a.id = b.id) temp
full join 
temp3 as c
on temp.id = c.id

在这里插入图片描述
方法3:

select 
temp.id 
,temp1.name
,temp2.city
,temp3.salary
from 
(select id 
from  
(select 
id
from  temp1
union all 
select 
id
from  temp2
union all 
select 
id
from  temp3
) tt
group by id
) temp 
left  join temp1  
on temp.id = temp1.id
left  join temp2  
on temp.id = temp2.id
left  join temp3 
on temp.id = temp3.id

在这里插入图片描述

http://www.yayakq.cn/news/712581/

相关文章:

  • 专业做医院网站温州网络公司网站建设
  • 网站开发三大元素网站发布初期的推广
  • 曾舜晞网站是哪个公司做的众筹平台网站建设
  • 住房城乡建设网站查询手机传奇开服网
  • 有个可以做图片的网站满18点此转入2o2
  • 旅游网站的主要功能有专门做英文字幕的网站吗
  • 哈尔滨app网站开发百川互联
  • 烟台网站建设优惠臻动传媒建设银行吴中支行网站
  • 空气净化器用什么网站做外贸阳泉做网站公司
  • 网文封面制作网站广州最大的建筑公司
  • 自己做的网站图片无法显示建立网站的基本步骤
  • 太子河网站建设网站域名列表
  • 房地产网站制作一个网站怎么做软件下载
  • 惠州市建设公司网站网站在线做照片
  • 网站建设和维护试卷网络营销计划的七个步骤
  • 网站建设策划 流程图怎样推广自己的项目
  • 成都区块链网站开发品牌网站建设怎么收费
  • seo关于网站搜索wordpress模板底部
  • 百度经验官方网站登录入口手机网站标准
  • 韩国 电商网站网页游戏网站556pk游戏福利平台
  • aspcms网站栏目调用网站设计素材
  • 珠海网站建设zhkmkj如何用html做班级网站
  • 建设的网站服务器项目加盟网
  • 上海网站建设在哪里旅行WordPress主题
  • 优秀的网站举例哪里可以做网站啊
  • 十堰网站建设联系电话成都机房托管
  • 湖北网站推广方案网页制作教程用什么软件
  • 如何在网站上做标记圈信息中美最近军事新闻
  • 南昌企业建站系统天眼查企业查询系统官网
  • 村级门户网站建设做网站建设比较好的公司