我试图找到一种只用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的地址。有意义吗?
没有什么是紧急的,只是有人要求我们提取数据的问题。我们设法以更长的方式手动拉出数据......但是,必须有一种更简单的方法。我认为我们只是想让它变得更加艰难......
感谢您的任何提示!
(注意实际的表格要大得多,有很多重复的行,还有更多的列。这些只是我们感兴趣的列。)
答案 0 :(得分:3)
您可以使用group by
和having
select email
from table t
group by email
having sum(type = 1) = 0 and
sum(eventdate <> '0000-00-00') > 0;
having
子句中的每个子句都会测试您的一个条件。