我有两个表,其伪结构如下:
User_master
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
Roaster_master
user pfid
--------------
andrew 3
reno 4
rosh 10
john 12
我需要在列用户上加入所有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匹配。