Consulta de unión MySQL, ordenada por 2 variables

Cada tabla (tabla1 y tabla2) tiene su propio campo DATETIME.
Estoy tratando de atrapar las identificaciones de las dos tablas y ordenarlas por su campo DATETIME.

Ejemplo:

Table 1                        Table 2
------------                 -------------
id |  datetime1               id | table1id  | datetime2
------------------------      -----------------------
1  |  2014-09-21 20:31:26     1  | 2         | 2014-09-21 20:31:29
2  |  2014-09-21 20:31:27     2  | 3         | 2014-09-21 20:31:30
3  |  2014-09-21 20:31:28

Table 3                      
------------               
id |  user               
------------------------   
2  |  phil                
3  |  nathalie

Mi salida no está ordenada correctamente con esta consulta:

SELECT *
FROM (
    SELECT 
    1 AS selection, 
    table1.id, table1.datetime1, 
    table2.datetime2 
    table3.user 
    FROM Table1 
    LEFT OUTER JOIN table2 
    ON table1.id = table2.table1id
    LEFT OUTER JOIN table3
    ON table1.id = table3.id

    UNION ALL

    SELECT 
    2 AS selection, 
    table1.id, table1.datetime1, 
    table2.datetime2 
    table3.user 
    FROM Table1 
    INNER JOIN table2 
    ON table1.id = table2.table1id
    INNER JOIN table3
    ON table1.id = table3.id
) AS query
ORDER BY table1.datetime1 DESC, table2.datetime2 DESC 

Datos deseados:
de la tabla 2 id: 2, 1,
de la tabla 1 id: 3, 2, 1
Entonces: 2, 1, 3, 2, 1

////EDITAR

Para las personas que podrían estar luchando con una solicitud MySQL larga y compleja, ¡inténtalo en PhpmyAdmin! ¡Te dirá el error!

////EDITAR

Respuestas a la pregunta(2)

Su respuesta a la pregunta