我有一个带有注册的 MySQL 表,如下所示:
id name email phone
1 Jim jim@gmail.com 111
2 Jim jim@hotmail.com 111
3 Fred fred@gmail.com 222
4 Fred fred@gmail.com 222
5 Adam adam@gmail.com 333
现在我需要找到所有不同的人已经注册并且可以通过电子邮件或电话值来完成。我想要一个用于映射的表/ View 。根据上面的示例表,我怎样才能得到如下所示的类似结果?
person_id registration_id
1 1
1 2
2 3
2 4
3 5
请注意,id 值不需要完全一样。我可以重新使用注册表中的值或以不同方式生成 ID。
最佳答案
可以通过一个简单的查询来实现:
select min(a.id) as person_id,b.id as registration_id
from
registrations a
join registrations b on ((a.email=b.email or a.phone=b.phone) and a.id<=b.id)
group by b.id
关于mysql - 具有共同值的记录的映射 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32812752/