Muy buenas. Tengo la siguiente tabla
Código SQL:
Ver originalCREATE TABLE IF NOT EXISTS `tbl_comentarios` (
`idcomentario` INT(11) NOT NULL AUTO_INCREMENT,
`autor` INT(11) NOT NULL,
`fecha` datetime NOT NULL,
`contenido` VARCHAR(500) COLLATE utf8_spanish_ci NOT NULL,
`comentario_padre` INT(11) DEFAULT NULL,
PRIMARY KEY (`idcomentario`),
KEY `tbl_comentarios_fk_1` (`comentario_padre`),
KEY `tbl_comentarios_fk_2` (`autor`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci AUTO_INCREMENT=9 ;
El atributo "comentario_padre" lo utilizo para almacenar respuestas a comentarios. Si es NULL es porque es un comentario "padre". Si no es NULL, llevará el "idcomentario" del comentario del que es respuesta.
Bien, pues quiero recuperar todos los comentarios "padre" de un usuario (atributo "autor") y que en esa misma consulta apareciera algún indicador de si ese comentario tiene o no respuestas. Esto lo podría hacer fácilmente en dos consultas, pero me parece mucho más óptimo hacerlo en una sola usando subconsultas. El problema es que no logro dar con algo que funcione :(
Me gustaría que el resultado de la consulta fuera más o menos así:
| idcomentario | fecha | contenido | respuestas |
| 2 | 25-07-2013| "lo_que_sea" | "SI" |
| 5 | 16-08-2013| "lo_que_sea" | "NO" |
Donde respuestas = "SI" indicaría que hay comentarios que tiene como "comentario_padre el idcomentario.
¿Cómo lo haríais?
Muchas gracias por anticipado.