MySQL:选择彼此日期范围内的行

Kin*_*tic 3 mysql sql database

我有一个类似以下的MySQL:

Events
+----+------+--------------------------------+
| id | name | sites_id | created             |
+----+------+--------------------------------+
| 1  | test | 1        | 2013-11-01 00:00:00 |
| 2  | test | 1        | 2013-11-02 00:00:00 |
| 3  | test | 2        | 2013-11-13 00:00:00 |
| 4  | test | 3        | 2013-11-14 00:00:00 |
| 5  | test | 4        | 2013-11-25 00:00:00 |
+----+------+----------+---------------------+
Run Code Online (Sandbox Code Playgroud)

我想要选择在48小时内创建并具有相同站点ID的事件.(在这个例子中我会期望ID 1和2).

任何帮助都会受到赞赏,因为我已经在SQL中仅绘制了如何做到这一点的空白.

谢谢

Fil*_*lva 5

尝试这样的事情:

SELECT DISTINCT e1.*
FROM events e1
INNER JOIN events e2 ON e1.sites_id = e2.sites_id
  AND e1.id <> e2.id
WHERE ABS(datediff(e1.created, e2.created)) <= 2;
Run Code Online (Sandbox Code Playgroud)

sqlfiddle demo

这会给你结果:

ID  NAME    SITES_ID    CREATED
2   test    1           November, 02 2013 00:00:00+0000
1   test    1           November, 01 2013 00:00:00+0000
Run Code Online (Sandbox Code Playgroud)