Creo que si agrupas por ambos id
y date
obtendrás lo que buscas. es decir:
SELECT id
FROM table
GROUP BY id, `date`
HAVING COUNT(*) = 3 /* Since number of days are 3 */
Tenga en cuenta que esto supone que obtiene la cantidad de días (3 en este caso) en función de un intervalo de fechas de otro lugar.