理解錯誤:「每個派生表必須有自己的別名」
執行涉及巢狀派生表(子-查詢),可能會出現錯誤,指出「每個衍生表必須有自己的別名。」當子查詢未指派唯一別名時,就會觸發此錯誤。
原因和解決方案:
透過將子查詢括在括號中來建立派生表。對於每個派生表,MySQL 要求包含一個別名,該別名用於引用該表及其資料。別名的目的是區分外部查詢中的多個派生表。
要解決此錯誤,請使用AS 關鍵字後跟唯一名稱為每個子查詢分配別名:
SELECT ID FROM ( SELECT ID, msisdn FROM ( SELECT * FROM TT2 ) AS TT2Subquery ) AS TableAlias
在這個修改後的查詢中,別名TT2Subquery 被分配給最裡面的子查詢,TableAlias 被指派給外面的子查詢。這些別名允許 MySQL 區分兩個子查詢並適當地連接它們。
或者,由於最外面的子查詢僅檢索單一列,因此可以完全省略它:
SELECT ID FROM TT2
這個簡化的查詢消除了對任何子查詢別名的需要,同時保持相同的結果。
以上是為什麼 MySQL 要求所有派生表使用別名?的詳細內容。更多資訊請關注PHP中文網其他相關文章!