2012-02-02 14 views
6

Tôi muốn đặt một bảng mysql bằng hai dấu thời gian strtotime từ hai cột khác nhau. Tôi đã có lệnh mysql sau:Mỗi bảng dẫn xuất phải có bí danh riêng của nó - lỗi từ kết hợp giảm dần 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 

này mang lại cho tôi một lỗi:

#1248 - Every derived table must have its own alias 

Tôi muốn kết hợp vid_req_timestampost_req_timestamp và làm cho những tự giảm dần. Và điều quan trọng là phải biết dấu thời gian đến từ đâu (bằng cách nào đó).

Trả lời

14

Trong trường hợp này, bảng dẫn xuất yêu cầu bí danh là bí danh bạn đang chọn * từ.

Thụt lề giúp làm rõ hơn.

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

Cảm ơn bạn rất nhiều! –

Các vấn đề liên quan