Tengo 3 tablas:
-una con imagenes (id)
-otra con 'tags' o 'keywords' (id, tag)
-y otra que hace corresponder una o más keywords a cada imagen (id, img_id, tag_id)
Supongamos q la imagen con id = 1, quiero encontrarla a partir de la búsqueda "arboles de hojas rojas".
Entonces voy a tener 3 keywords (el 'de' lo obviamos), o sea 3 filas en la tabla de keywords, y otras 3 filas en la tabla de img-keywords.
Como tendria que ser la consulta, para que me devuelva solo imágenes que contengan esas 3 keywords, y no otras q contengan solo 2 o 1??
Hasta ahora tengo:
SELECT * FROM imagenes AS a
RIGHT JOIN imagenes_tags AS b ON a.id = b.img_id
LEFT JOIN indice_tags AS c ON b.tag_id = c.id
WHERE c.tag LIKE 'arboles%'
GROUP BY b.img_id
si agrego AND c.tag LIKE 'hojas%' ya no devuelve ningun resultado.
Alguna idea?? No quiero tener q hacer 3 consultas y luego compararlas para ver qué imagen salió en las 3.
Por ahi escuche que el fulltext search era mas eficiente que el LIKE, pero me parece que es mas para textos que para unas pocas palabras clave.
Saludos!