Veamos,
Se trata de una busqueda de elementos por etiquetas
Tengo: Elemento [id,nombre,fecha] y etiqueta [id,nombre,id_elemento,fecha]
Bien,
Digamos que quiero tres resultados diferentes:
1) con solo las etiquetas introducidas y ninguna más
2) con alguna más
3) con alguna menos
Bien, digamos que tengo problemas con el 1) , que , de momento estoy intentando así:
Código PHP:
SELECT b.id as id_deseada FROM elemento b, etiquetas c WHERE c.id_elemento = b.id AND (c.nombre IN ('etiqueta','segunda_etiqueta')) AND (c.nombre NOT IN ('etiqueta1','etiqueta2','etiqueta3','etiqueta4','etiqueta5')) GROUP BY b.id HAVING COUNT( c.id )=2
El problema es que si escribo: 'etiqueta, segunda_etiqueta', me salen solo los elementos que tienen TODAS las etiquetas pero también resultados con etiqueta1 u otra que no he introducido...
Como puedo asegurarm de que se cumpla el primer IN y que el numero de etiquetas sea el que le paso a having count?
es decir que tenga todas las etiquetas buscadas y que el numero de etiquetas ( c.id ? ) del elemento sea igual al numero de etiquetas que vienen del formulario.