以下を考えると:
drop table if exists a;
create table a (
id CHAR(30),
d1 DATETIME,
d2 DATETIME
);
insert into a values (1, '2012/1/1', '2012/1/2');
insert into a values (1, '2012/1/15', '2012/1/16');
insert into a values (1, '2012/1/25', '2012/1/26');
insert into a values (1, '2012/2/10', '2012/2/11');
insert into a values (2, '2012/1/1', '2012/1/2');
insert into a values (2, '2012/2/6', '2012/2/7');
各 ID のすべてのレコードを返したいが、30 日以内に重複を排除したい (datediff(d2,d1) <= 30):
+------+---------------------+---------------------+
| id | d1 | d2 |
+------+---------------------+---------------------+
| 1 | 2012-01-01 00:00:00 | 2012-01-02 00:00:00 |
| 1 | 2012-02-10 00:00:00 | 2012-02-11 00:00:00 |
| 2 | 2012-01-01 00:00:00 | 2012-01-02 00:00:00 |
| 2 | 2012-02-06 00:00:00 | 2012-02-07 00:00:00 |
+------+---------------------+---------------------+
1/15 と 1/25 は 1/1 から 30 日以内なので削除されました。うまくいけば、それは理にかなっています。単一の選択で。