Hola, quisiera realizar una consulta que corresponde a la busqueda de archivos multimedia dada la coincidencia con al menos 1 de sus tags.
Mis 3 tablas son las siguientes:
MEDIAS
[ID]
[ARCHIVO]
MEDIAS-TAGS
[ID]
[ID_MEDIA] (FK MEDIAS.ID)
[ID_TAG] (FK TAGS.ID)
TAGS
[ID]
[DESC]
El caso ideal sería que dada la DESC de un tag, retorne todos los MEDIAS que contengan el tag en cuestión. Es fundamental que que la consulta devuelva en un campo, mediante GROUP_CONCAT, la union de todos los TAGS correspondientes a ese MEDIA.
Lo que se me ocurre hacer es lo siguiente, pero solo me devuelve el el tag que coincide con la busqueda, en lugar de todos los tags pertenecientes al MEDIA:
Código MySQL:
Ver originalJOIN medias_tags
ON medias.id
= medias_tags.id_media
JOIN tags
ON medias_tags.id_tag
= tags.id
Para aclarar un poco mas, el/los registros a devolver deberían estar formados del siguiente modo:
tag.desc a buscar: "tn"
resultado de la query:
[
{"id":"1225","tagl":"pdf,t3,t2,tn"},
{"id":"468","tagl":"video,tn"},
{....}
]
De momento lo estoy haciendo mediante 2 consultas, la primera me devuelve todos los IDs de los MEDIAS que contienen ese tag.desc y, mediante una segunda consulta, capturo todos los tags que corresponden a ese MEDIA.
Cualquier sugerencia es bienvenida
Gracias!