每个派生表必须有自己的别名 - 组合降序MySQL的错误

Pau*_*rts 6 mysql union

我想通过两个不同列的两个strtotime时间戳来订购一个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
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误:

#1248 - Every derived table must have its own alias
Run Code Online (Sandbox Code Playgroud)

我想结合vid_req_timestamp,并ost_req_timestamp和使这些下降.知道时间戳来自何处(以某种方式)非常重要.

Teh*_*ike 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
Run Code Online (Sandbox Code Playgroud)