MySQL - 有趣的搜索我遇到了问题

时间:2014-04-17 17:51:19

标签: mysql sql

我试图找到一种只用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的人,但确实有一个不等于'0000-00-00'的eventdate。但是如果有重复的电子邮件地址,我们只想关注没有eventdate的地址。有意义吗?

没有什么是紧急的,只是有人要求我们提取数据的问题。我们设法以更长的方式手动拉出数据......但是,必须有一种更简单的方法。我认为我们只是想让它变得更加艰难......

感谢您的任何提示!

(注意实际的表格要大得多,有很多重复的行,还有更多的列。这些只是我们感兴趣的列。)

1 个答案:

答案 0 :(得分:3)

您可以使用group byhaving

轻松完成此操作
select email
from table t
group by email
having sum(type = 1) = 0 and
       sum(eventdate <> '0000-00-00') > 0;

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