我只需要在一张表中找到所有今天参加比赛的人,而不是前几天的获胜者...
我的查询是:
SELECT Email,FName,Name,ID
FROM `voucher_registrations`
WHERE DATE_FORMAT(`Date_Submitted`,'%Y-%c-%d') = curdate()
and Email not in (select email
from `voucher_registrations`
where winner=1)
有问题...当我尝试执行查询时,mysql 没有响应(表中大约有 7000 行)
有什么想法吗?或者另一种方式来进行这种查询?
尼古拉斯
最佳答案
您可以在电子邮件字段上添加索引以加快查询速度,并在子查询中选择“DISTINCT”电子邮件以减少搜索值:
SELECT Email,FName,Name,ID
FROM `voucher_registrations`
WHERE Date_Submitted = CURDATE()
AND Email not in
(SELECT DISTINCT Email FROM`voucher_registrations` WHERE winner=1)
关于Mysql "not in"选择问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7918042/