MySQL consigue una conversación entre dos usuarios

Tengo una tabla SQL llamada private_messages con campos (id, from, to, message, stamp). El campo del sello corresponde a la fecha del mensaje.

Entonces, ¿qué consulta necesito para:

1) obtener una conversación entre dos usuarios (ordenados por fecha)?

He intentado la consulta

(SELECT * FROM private_messages WHERE from=$my_id AND to=$other_id) 
UNION 
(SELECT * FROM private_messages WHERE from=$other_id AND to=$my_id) 
ORDER BY stamp
;

pero no funciona ...

2) ¿Obtener los últimos mensajes entre yo y otros usuarios, cada uno con un usuario diferente, ordenados por fecha (para construir una bandeja de entrada como en Facebook), por ejemplo?

Respuestas a la pregunta(4)

Su respuesta a la pregunta