2012-02-19 108 views

回答

6
SELECT * 
FROM 
(
    SELECT * 
    FROM 
    Table1 
) x 

您需要給你的派生表的名稱。

+3

我希望錯誤消息更直觀。爲什麼不能'派生表缺少別名.'? – 2012-02-19 19:00:57

+0

是的,幾年前我有同樣的問題。 – usr 2012-02-19 19:03:13

2

因爲您需要添加別名。運行這樣說:

SELECT * FROM (
    SELECT * FROM Table1 
) T 

只是爲了記錄在案,MySQL的顯示以下錯誤給出了同樣的情況:)

每個派生的表必須有它自己的別名

+2

只是不要被愚蠢地認爲讓MySQL變得更好。 :-) – 2012-02-19 19:05:50

+0

從來沒有說過。只是做了一個簡單的比較給出了同樣的問題。我知道SQL Server有非凡的觀點,但簡單的解析錯誤似乎並不是它的最強點:) – 2012-02-19 19:08:15

+0

解決簡單的解析錯誤並不一定如此。這是關於錯誤的決定在任何人投訴之前就已經做出的很長時間了,而且由於向後兼容性問題,很難更改錯誤消息。在MySQL中很容易,因爲它是牛仔開源的。 :-) – 2012-02-19 19:32:54

1

並且您可以使用AS關鍵字使其更具可讀性

SELECT * FROM (SELECT * FROM table1) as table2