Necesitaría ayuda para obtener los resultados de una consulta entre 3 tablas asociadas. La consulta es básicamente la búsqueda de registros por medio de tags.
Para ésto tengo 3 tablas:
NOTICIAS [id | titulo]
TAGS_NOTICIAS [id | id_tag | id_noticia]
TAGS [id | descripcion]
Lo que necesito hacer es que, dado uno o varios tags, se devuelva la(s) noticia(s) que tengan asociados dichos tags. El inconveniente es que necesito que devuelva todos los tags asociados a la noticia si es que hay coincidencia con uno de ellos
Como ejemplo, este sería el caso de éxito:
NOTICIA
[id] 67458
[titulo] Noticia de ejemplo
TAGS_NOTICIAS
[id] 125
[id_tag] 43
[id_noticia] 67458
--------------------
[id] 126
[id_tag] 45
[id_noticia] 67458
TAGS
[id] 43
[descripcion] tag1
--------------------
[id] 45
[descripcion] tag2
Suponiendo que busco noticias con el valor "tag1", el resultado debería ser:
REGISTRO
[id] 67458
[titulo] Noticia de ejemplo
[ntags] tag1, tag2
Paso a mostrarles la consulta:
Código MySQL:
Ver original
El inconveniente es que los tags son acotados a la coincidencia y sólo devuelve ntags con el valor del tag buscado.
Existe alguna forma de hacer un subquery / LEFT JOIN / etc para obtener todos los tags de la noticia independientemente del tag buscado?
Gracias de antemano