Hola SubZero_mb:
Tengo algunas dudas en cuanto al problema que lamentablemente no aclaran los datos, y es con respecto a si existiera alguna noticia que se relacione con sólo alguno de los tagas (en este caso con el 23 o 51), no sé si también se tenga que presentar o solo se deben presentar aquellas noticias que se relacionen con ambos tags... para el ejemplo voy a suponer esto ultimo: creo que podría quedar más o menos así:
Código MySQL:
Ver originalQuery OK, 0 rows affected (0.06 sec)
-> (2, 'titulo 2', 'texto noticia 2'),
-> (3, 'titulo 3', 'texto noticia 3'),
-> (4, 'titulo 4', 'texto noticia 4');
Query OK, 4 rows affected (0.01 sec)
Query OK, 0 rows affected (0.08 sec)
-> (1, 73, 'imagen'), (1, 3, 'noticia'), (2, 2, 'noticia'),
-> (3, 1, 'noticia'), (3, 2, 'noticia'), (3, 4, 'noticia');
Query OK, 7 rows affected (0.01 sec)
Query OK, 0 rows affected (0.06 sec)
-> (30, 73, 'imagen'), (51, 1, 'noticia'), (64, 1, 'noticia'),
-> (67, 2, 'noticia'), (2, 21, 'imagen'), (98, 2, 'noticia'),
-> (45, 3, 'noticia'), (33, 3, 'noticia'), (29, 3, 'noticia'),
-> (23, 4, 'noticia'), (51, 4, 'noticia');
Query OK, 12 rows affected (0.01 sec)
-> on W.id_x
= N.id_noticia
-> on T.id_x
= N.id_noticia
+------------+----------+-----------------+
| id_noticia | titulo | texto |
+------------+----------+-----------------+
| 1 | titulo 1 | texto noticia 1 |
| 4 | titulo 4 | texto noticia 4 |
+------------+----------+-----------------+
Si fuera el caso de que también quieres mostrar aquellas noticias que se relacionen sólo con uno de los tags, lo único que deberías hacer es quitar la condición HAVING del select interno (T)
Dale un vistazo y espero que te sirva...
Saludos
Leo.