Acredito que se você agrupar por
id
e date
você vai conseguir o que está procurando. ou seja:SELECT id
FROM table
GROUP BY id, `date`
HAVING COUNT(*) = 3 /* Since number of days are 3 */
Observe que isso pressupõe que você está obtendo o número de dias (3 neste caso) com base em algum intervalo de datas de outro lugar.