Hola srnetworks:
Tal como lo infieres correctamente, una opción sería utilizar UNION para unir las dos tablas, sin embargo olvidaste mencionarnos cuál es la estructura de tus tablas, para poder darte un ejemplo más cercano a tu realidad. Sin embargo creo que este script podría servirte:
Código MySQL:
Ver originalQuery OK, 0 rows affected (0.14 sec)
Query OK, 1 row affected (0.03 sec)
+-----------+--------+
| idUsuario | nombre |
+-----------+--------+
| 1 | Juan |
+-----------+--------+
Query OK, 0 rows affected (0.09 sec)
-> (1, 1, 'Prueba 1', '2011-10-30 14:33:21'),
-> (2, 1, 'Prueba 2', '2011-10-31 09:21:32');
Query OK, 2 rows affected (0.03 sec)
+--------+-----------+-------------+---------------------+
| idPost | idUsuario | descripcion | fecha |
+--------+-----------+-------------+---------------------+
| 1 | 1 | Prueba 1 | 2011-10-30 14:33:21 |
| 2 | 1 | Prueba 2 | 2011-10-31 09:21:32 |
+--------+-----------+-------------+---------------------+
Query OK, 0 rows affected (0.11 sec)
-> (1, 1, 1, 'Comentario 1 del Post 1', '2011-10-30 14:35:32'),
-> (2, 1, 1, 'Comentario 2 del Post 1', '2011-10-31 10:45:41'),
-> (3, 1, 2, 'Comentario 1 del Post 2', '2011-10-31 10:48:09');
Query OK, 3 rows affected (0.03 sec)
-> CONCAT(Tu.nombre
, ' creó el post ', TP.descripcion
) descripcion
-> TU.idUsuario = TP.idUsuario
-> CONCAT(Tu.nombre
, ' comentó el post ', TP.descripcion
) descripcion
-> INNER JOIN TablaPosts TP
ON TU.idUsuario
= TP.idUsuario
-> TU.idUsuario = TC.idUsuario
-> AND TP.idPost
= TC.idPost
+---------------------+-------------------------------+
| fecha | descripcion |
+---------------------+-------------------------------+
| 2011-10-30 14:33:21 | Juan creó el post Prueba 1 |
| 2011-10-30 14:35:32 | Juan comentó el post Prueba 1 |
| 2011-10-31 09:21:32 | Juan creó el post Prueba 2 |
| 2011-10-31 10:45:41 | Juan comentó el post Prueba 1 |
| 2011-10-31 10:48:09 | Juan comentó el post Prueba 2 |
+---------------------+-------------------------------+
Observa que la última consulta está compuesta de dos subconsultas... son prácticamente iguales, pero en la segunda se hacen los JOINS sobre las tres tablas. Observa también que en la primer subconsulta se toma la fecha de la tabla de Posts (SELECT TP.fecha) mientras que en la segunda subconsulta se toma la fecha de la tabla de comentarios (SELECT TC.fecha). Finalmente, la intercalación se da al ordenar los registros por fecha...
En los datos de ejemplo pongo a propósito un comentario del post1 en una fecha posterior al día de creación... si quisieras mostrar todos los mensajes referentes a un post, tendrías que hacer algo como esto:
Código MySQL:
Ver originalmysql
> SELECT TP.fecha
, TP.idPost
, -> CONCAT(Tu.nombre
, ' creó el post ', TP.descripcion
) descripcion
-> TU.idUsuario = TP.idUsuario
-> SELECT TC.fecha
, TP.idPost
, -> CONCAT(Tu.nombre
, ' comentó el post ', TP.descripcion
) descripcion
-> INNER JOIN TablaPosts TP
ON TU.idUsuario
= TP.idUsuario
-> TU.idUsuario = TC.idUsuario
-> AND TP.idPost
= TC.idPost
+---------------------+--------+-------------------------------+
| fecha | idPost | descripcion |
+---------------------+--------+-------------------------------+
| 2011-10-30 14:33:21 | 1 | Juan creó el post Prueba 1 |
| 2011-10-30 14:35:32 | 1 | Juan comentó el post Prueba 1 |
| 2011-10-31 10:45:41 | 1 | Juan comentó el post Prueba 1 |
| 2011-10-31 09:21:32 | 2 | Juan creó el post Prueba 2 |
| 2011-10-31 10:48:09 | 2 | Juan comentó el post Prueba 2 |
+---------------------+--------+-------------------------------+
Dale un vistazo y nos comentas.
Saludos
Leo.