我停电了 - 我有以下表结构:
s_order:
userID | ....
s_user:
id | email | ...
我现在遍历所有订单,可以读取客户的用户ID。我现在想检查这个客户是否有其他订单,不是通过他的身份识别,而是通过他的电子邮件地址(由于迁移,这可能发生)。
可以是,在s_user表中我有以下数据:
s_user:
id | email | ...
1 | hello@domain.com
2 | hello@domain.com
有人可以帮忙吗?谢谢!
答案 0 :(得分:2)
这是一种方法:
content
但是,仅查看多个用户是否拥有相同的电子邮件可能就足够了。如果是这样,这是最简单的方法:
select u.*,
(case when exists (select 1
from s_order o2 join
s_user u2
on o2.user_id = u2.id
where u2.email = u.email and u2.id <> u.id
)
then 'Yes' else 'No'
end) as HasDuplicate
from s_user u;
您可以将此限制仅限于订单用户:
select u.email, group_concat(u.id) as userid
from s_user u
group by u.email
having count(*) > 1;