我有两张桌子可以像这样加入:
select * from
(select * from table1 t1
left join table2 t2 on t1.id = t2.id )
我想添加第三个按电子邮件分组的表,以回填上述联接中的数据,但我只想回填电子邮件计数为 1 的记录的数据。如果不同记录存在重复的电子邮件地址,则应将其排除。
我一直在尝试这个查询:
select * from
(select * from table1 t1
left join table2 t2 on t1.id = t2.id
inner join ((select email from table3 group by email
having count(*) =1) t3
on t3.email = t1.emailaddress)
此时,当我将电子邮件字段与更大连接中的其他人合并时,我仍然看到记录回填了数据,而电子邮件计数大于 1 被回填。
IE
仅来自 LEFT JOIN 的表:
email missing_id
a@a.com
b@b.com
仅表 3 数据
email missing_id
a@a.com 1
a@a.com 2
b@b.com 3
在电子邮件仅出现一次的情况下连接的所有表都应回填左连接中的数据,如下所示:
email missing_id
a@a.com
b@b.com 3