Credo che se raggruppi per entrambi id
e date
otterrai quello che stai cercando. cioè:
SELECT id
FROM table
GROUP BY id, `date`
HAVING COUNT(*) = 3 /* Since number of days are 3 */
Tieni presente che questo presuppone che tu stia ottenendo il numero di giorni (3 in questo caso) in base a un intervallo di date da qualche altra parte.