MySQL-有趣的搜索我有问题

MySQL-有趣的搜索我有问题,mysql,sql,Mysql,Sql,我正试图找到一种只使用MySQL查询来提取特定数据的方法。我的数据库如下: <pre> id | number | eventdate | type | email | ----------------------------------------------------------------------- 1 | 1000 | 2014-01-01 | 5 |

我正试图找到一种只使用MySQL查询来提取特定数据的方法。我的数据库如下:

<pre>
id     |     number     |   eventdate  |     type     |     email     |
-----------------------------------------------------------------------
1      | 1000           | 2014-01-01   | 5            | tom@email.com |
2      | 1001           | 0000-00-00   | 1            | tom@email.com |
3      | 1002           | 2014-01-01   | 3            | john@email.com|
4      | 1003           | 0000-00-00   | 6            | joe@email.com |
5      | 1004           | 2014-01-01   | 3            | bob@email.com |
6      | 1005           | 0000-00-00   | 1            | adam@email.com|
7      | 1006           | 2014-01-01   | 3            | beth@email.com|
</pre>
查询将查找类型不为1,但eventdate不等于“0000-00-00”的任何人。但是如果有重复的电子邮件地址,我们只想注意没有eventdate的地址。有道理吗

没什么紧急的,只是有人问我们一个问题,要我们提取数据。我们设法用更长的方法手动拉出数据。。。但是,必须有一个更简单的方法。我想我们只是想让它变得比必须的更难

谢谢你的提示


注意,实际的表要大得多,有许多重复的行和更多的列。这些就是我们感兴趣的专栏。

您可以通过group by轻松完成这项工作,并拥有:


having子句中的每个子句都测试您的一个条件。

您可以通过group by和having轻松完成这一任务:


having子句中的每个子句都测试您的一个条件。

您可以通过group by和having轻松完成这一任务:


having子句中的每个子句都测试您的一个条件。

您可以通过group by和having轻松完成这一任务:



having子句中的每个子句都测试您的一个条件。

当您说现在有一个类型为1时,您的意思是…没有…?是的,对不起。。。打字错误…不完全清楚。你想要一个混合的结果,有些有事件日期,有些没有?您的示例中的哪些行是正确的查询应该返回的?当您说现在有一个类型为1时,您的意思是…没有…?是的,对不起。。。打字错误…不完全清楚。你想要一个混合的结果,有些有事件日期,有些没有?您的示例中的哪些行是正确的查询应该返回的?当您说现在有一个类型为1时,您的意思是…没有…?是的,对不起。。。打字错误…不完全清楚。你想要一个混合的结果,有些有事件日期,有些没有?您的示例中的哪些行是正确的查询应该返回的?当您说现在有一个类型为1时,您的意思是…没有…?是的,对不起。。。打字错误…不完全清楚。你想要一个混合的结果,有些有事件日期,有些没有?正确的查询应该返回示例中的哪些行?电子邮件地址,ithink@serakfalcon . . . 是的,有道理。电子邮件地址,我think@serakfalcon . . . 是的,有道理。电子邮件地址,我think@serakfalcon . . . 是的,有道理。电子邮件地址,我think@serakfalcon . . . 是的,这是有道理的。
select email
from table t
group by email
having sum(type = 1) = 0 and
       sum(eventdate <> '0000-00-00') > 0;