Я пытаюсь отобразить записи из моей базы данных mysql за предыдущие три дня, но только если записи несколько раз подряд. Так показать все записи за последние три дня, но только если они одинаковы в эти три дняПытается отображать записи предыдущих дней с несколькими записями в строке в SQL
Например, в моей базе данных у меня есть записи, которые выглядят следующим образом:
+--------+-------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+-------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| ts | timestamp | NO | | CURRENT_TIMESTAMP | |
| server | varchar(15) | YES | | NULL | |
| status | varchar(30) | YES | | NULL | |
+--------+-------------+------+-----+-------------------+----------------+
Так , у меня есть записи, которые выглядят как:
+----+---------------------+------------+----------+
| id | ts | server | status |
+----+---------------------+------------+----------+
| 1 | 2014-12-13 09:25:41 | test_host1 | new-file |
| 2 | 2014-12-14 09:25:41 | test_host1 | new-file |
| 3 | 2014-12-14 09:25:41 | test_host2 | new-file |
| 4 | 2014-12-15 09:25:41 | test_host1 | new-file |
| 5 | 2014-12-15 09:25:41 | test_host3 | new-file |
+-------+---------------------+----------+---------+
12799 rows in set (0.02 sec)
у меня есть запрос, который я написал, что будет отображать последние три дня, но отобразить все серверы:
select * from table WHERE ts > CURRENT_DATE - INTERVAL 3 DAY AND DATE(ts) <> DATE(NOW());
Я только хочу, чтобы серверы возникали последовательно каждый день. Так что мой psuedocode будет:
select * from table from the last three days where server has a record in all three days
Я не хочу, чтобы выбрать серверы, где сервер показывает только для одного из дней.
Кто-нибудь знает, как этого достичь? Я отчасти там, просто нужна помощь с последней частью.
спасибо.
Вот оно! Мне нужно много узнать о SQL, и я учусь. – awojo