2012-02-02 6 views
6

2つの異なる列から2つのstrtotimeタイムスタンプで1つの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

この場合、エイリアスを必要とする派生テーブルは、あなたが*選択しているものです。

インデントは、より明確にするのに役立ちます。

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

ありがとうございました! –

関連する問題