首页 > 解决方案 > Amazon Redshift - 加入表并找出不匹配的行

问题描述

我有两个表,其伪结构如下:

用户主

user   pfid
------------
reno    2
andrew  3
reno    4
rosh    5
rosh    8
john    7

HR_master

user    pfid
-------------
andrew   3
reno     4
rosh     9
john     12

烘焙大师

user    pfid
--------------
andrew   3
reno     4
rosh     10
john     12

我需要加入列user上的所有 3 个表,并在 HR_master 中找到 pfid 与 User_master 中的任何等效条目不匹配的行。如果您注意到“reno”匹配的条目之一,而“rosh”的条目没有匹配。

如果User_master中只有一个条目,这将是一项简单的任务,因为多行而出现复杂情况。

预期的输出是

USM.user   USM.pfid   HRM.pfid   RM.pfid
-----------------------------------------
  rosh       5|8        9           10
  john        7         12          12

如所问,这是我编译的查询:

select
  UM.email,UM.pfid as UMpfid,
  HRM.pfid, RM.pfid
from user_master UM
left join HR_master HRM on (HRM.email=UM.email)
left join Roaster_master RM on (RM.email=UM.email)
where UM.pfid != HRM.pfid

上面的查询也返回“reno”,而它不应该是因为 User_master 中的行之一具有 pfid 匹配。

标签: amazon-web-servicesamazon-redshift

解决方案


推荐阅读