我已经在 Google 上搜索了一段时间,但没有找到解决方案。好的,我有 2 个如下所示的表:表“main”:
表“已注册”:
现在,表中“main”中的部分客户将出现在表中“registered”,但不是全部。此外,可能有些客户出现在表中“registered”,但不出现在表中“main”。最后,同一个客户(电子邮件)可能多次出现在表中,但只出现在表中一次。
现在我想要做的是查询两个表中所有唯一的电子邮件和相应的名称(我不关心来自哪个表)。我试过:
SELECT client_email,client_name
FROM `main`
UNION
SELECT client_email,client_name
FROM `registered`
ORDER BY client_email ASC;
但这会产生重复的电子邮件,因为它不仅寻找唯一的电子邮件,还寻找电子邮件和客户名称都是唯一的条目。因此,如果客户名称在一个条目中的拼写稍有不同(例如,带有连字符或重音符等),就会导致该电子邮件被收集多次。我可以使用 GROUP BY(client_email) 让它在单个表上工作,但我不知道如何从 2 个或更多表中收集所有唯一的电子邮件。
期望结果。基于上面的示例数据,我希望得到以下查询结果:
| client_email | client_name |
| ------------ | -------------- |
| [email protected]| Peter Pan |
| [email protected]| James Bond |
| [email protected] | Paul Smith |