2012-02-02 19 views
6

我想從兩個不同列中的兩個時間戳訂購一個mysql表。我有以下MySQL命令:每個派生表都必須有自己的別名 - 從組合降序出錯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 

這給了我一個錯誤:

#1248 - Every derived table must have its own alias 

我想結合vid_req_timestampost_req_timestamp並使這些下降。重要的是要知道時間戳的來源(以某種方式)。

回答

14

在這種情況下,需要別名的派生表是您正在SELECTing *的派生表。

縮進有助於使其更清晰。

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

非常感謝! – 2012-02-02 21:33:29

相關問題