El sistema esta compuesto por tres tablas, una almacena las imagenes y le asigna una id a cada imagen, otra guarda las tags y asigna una id a cada tag y la ultima vincula el id de la tag con la ide de la imagen.
(images.id) <---> (nodes.image_id | nodes.tag_id) <---> (tags.id | tags.tag)
Y el problema que estngo es que no puedo realizar una busqueda de imagenes por dos o mas tags, es decir, si busco "car wheels" para que me devuelva las ids de la imagenes que contengan como tag "car" y "wheels" a su vez.
Este es my query actual:
Código SQL:
Ver original
SELECT images.* FROM images JOIN nodes ON images.id = nodes.image_id WHERE tag_id IN (SELECT tags.id FROM tags WHERE tags.tag IN ('car','wheels')) GROUP BY images.id
El problema es que el primer IN en vez de "filtrar" los resultados los suma...es decir no busca por "car wheels" sino que busca todas las imagenes que contenga el tag "car" y las suma con los resultados de la busqueda de "wheels" por lo que falla.
Ayuda por favor.