2012-02-02 27 views
6

Deseo pedir una tabla mysql por dos marcas de tiempo de strtotime de dos columnas diferentes. Tengo el siguiente comando MySQL:Cada tabla derivada debe tener su propio alias: error de la combinación descendente de MySQL

SELECT * FROM (
(SELECT '1' AS `table`, `vid_req_timestamp` AS `timestamp`, `title` FROM `movies` WHERE `vid_req` = '1') 
UNION 
(SELECT '2' AS `table`, `ost_req_timestamp` AS `timestamp`, `title` FROM `movies` WHERE `ost_req` = '1') 
) 
ORDER BY `timestamp` DESC 

Esto me da un error:

#1248 - Every derived table must have its own alias 

quiero combinar vid_req_timestamp y ost_req_timestamp y hacer los descendente. Y es importante saber de dónde vino la marca de tiempo (de alguna manera).

Respuesta

14

En este caso, la tabla derivada que requiere un alias es de la que SELECCIONA * de.

La sangría ayuda a hacerlo más claro.

SELECT * FROM 
(
    (SELECT '1' AS `table`, `vid_req_timestamp` AS `timestamp`, `title` FROM `movies` WHERE `vid_req` = '1') 
    UNION 
    (SELECT '2' AS `table`, `ost_req_timestamp` AS `timestamp`, `title` FROM `movies` WHERE `ost_req` = '1') 
) AS `some_table_name_lol_this_is_an_alias` 
ORDER BY `timestamp` DESC 
+0

¡Muchas gracias! –

Cuestiones relacionadas