Buenas, como esta?
Estoy haciendo un sistema de post en los que se pueden dejar varios comentarios, y mi problema es que no se que consultar hacer para el siguiente caso:
Yo tengo dos tablas "posts" y "comentarios". Donde sus key son id_post y id_comentario.
(pongo los campos que intervienen en el problema nada mas)
Posts: Comentarios:
|--id_post--| |-----id_comentario-----|
|--id_post_comentado--|
Un post puede tener varios comentarios o sea, en la tabla Comentarios puede haber varios registros con el mismo id_post_comentario.
Como seria la consulta para traer todos los comenarios pertenecientes a un post?
Es correcto como arme las tablas?
Muchas gracias.
Sí esta relacionada, puedes hacer un INNER JOIN, por ejemplo.
Si tenemos la siguiente estructura de tabla para POST y COMENTARIO.
mysql> SELECT * FROM tblComentario;
+----+--------------+--------------+
| id | idComentario | comentario |
+----+--------------+--------------+
| 1 | 1 | Comentario 1 |
| 2 | 1 | Comentario 2 |
| 3 | 2 | Comentario 1 |
| 4 | 3 | Comentario 1 |
| 5 | 3 | Comentario 2 |
| 6 | 3 | Comentario 3 |
+----+--------------+--------------+
6 rows in set (0.00 sec)
mysql> SELECT * FROM tblPost;
+----+--------+--------------+
| id | idPost | idComentario |
+----+--------+--------------+
| 1 | 1 | 2 |
| 2 | 2 | 1 |
| 3 | 3 | 3 |
+----+--------+--------------+
3 rows in set (0.00 sec)
Realizamos el INNER JOIN y quedará así,
SELECT tblPost.idPost, tblComentario.idComentario, tblComentario.comentario
FROM tblPost
INNER JOIN tblComentario
ON tblPost.idComentario = tblComentario.idComentario
WHERE tblPost.idPost = 2;
El resultado sería,
+--------+--------------+--------------+
| idPost | idComentario | comentario |
+--------+--------------+--------------+
| 2 | 1 | Comentario 1 |
| 2 | 1 | Comentario 2 |
+--------+--------------+--------------+
2 rows in set (0.00 sec)