Hola,
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 noticias.id,
noticias.titulo,
tags_noticias
ON tags_noticias.id_noticia
= noticias.id
tags
ON tags.id
= tags_noticias.id_tag
tags.descripcion = $variable
noticias.id
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