A ideia da consulta é que você precisa combinar o número de registros com o número de valores que você forneceu no
WHERE
cláusula. SELECT ID
FROM tableName
WHERE tag IN (4, 8)
GROUP BY ID
HAVING COUNT(*) = 2
se a restrição exclusiva não foi especificada na tag para cada ID, então
DISTINCT
é preciso SELECT ID
FROM tableName
WHERE tag IN (4, 8)
GROUP BY ID
HAVING COUNT(DISTINCT tag) = 2