ya voy a hacer el cambio entonces =)
Solo por probar la ultima solucion tekun/rdoggsv:
create table mitabla (grupo varchar(10), valor varchar(10));
insert into mitabla (grupo,valor) VALUES ('1','a'),('1','b'),('1','c'),('2','a'),('2','z'),('3','a'),('3','f');
mysql> SELECT grupo FROM mitabla WHERE mitabla.valor in ('a', 'b', 'c') AND mitabla.grupo IN (SELECT mitabla.grupo FROM mitabla GROUP BY grupo HAVING COUNT(*) =3) GROUP BY mitabla.grupo HAVING COUNT(DISTINCT mitabla.valor) = 3;
+-------+
| grupo |
+-------+
| 1 |
+-------+
1 row in set (0.07 sec)
mysql> SELECT grupo FROM mitabla WHERE mitabla.valor in ('a', 'z') AND mitabla.grupo IN (SELECT mitabla.grupo FROM mitabla GROUP BY grupo HAVING COUNT(*) =2) GROUP BY mitabla.grupo HAVING COUNT(DISTINCT mitabla.valor) = 2;
+-------+
| grupo |
+-------+
| 2 |
+-------+
1 row in set (0.00 sec)
mysql> SELECT grupo FROM mitabla WHERE mitabla.valor in ('a', 'f') AND mitabla.grupo IN (SELECT mitabla.grupo FROM mitabla GROUP BY grupo HAVING COUNT(*) =2) GROUP BY mitabla.grupo HAVING COUNT(DISTINCT mitabla.valor) = 2;
+-------+
| grupo |
+-------+
| 3 |
+-------+
1 row in set (0.00 sec)
Parece que funciona bien =D, al menos quedo de aprendizaje jeje gracias a todos.