我正在编写MySQL查询,我可以从用户表中获取具有重复电子邮件地址的所有记录.
这是我到目前为止的查询..我的PHPMyAdmin继续加载:
select personal_email, userid
from user
where personal_email in (
select personal_email
from user
group by personal_email
having count(personal_email) > 1);
Run Code Online (Sandbox Code Playgroud)
如果我使用下面的查询,我只会收到所有双重电子邮件:
select personal_email, count(personal_email)
from user
group by personal_email
having count(personal_email) > 1
Run Code Online (Sandbox Code Playgroud)
目标是获取包含重复电子邮件的所有记录.
尝试使用 JOIN 而不是 JOIN 查询IN:
SELECT user.personal_email, user.userid
FROM user
INNER JOIN
( SELECT personal_email
FROM User
GROUP BY personal_email
HAVING COUNT(*) > 1
) dupe
ON dupe.personal_email = user.personal_email;
Run Code Online (Sandbox Code Playgroud)
MySQL 通常会更好地优化 INNER JOIN。