2013-10-10 36 views
0

我試圖運行此查詢:錯誤1248:「每一個派生的表必須有它自己的別名」

SELECT DISTINCT col1 
FROM 
    (
    SELECT CONCAT(retailerId,'_recharge') FROM retailerinformation 
    WHERE Channel='videocon' AND retailerId='kioskpb20130909045617' 
) 

但運行每次我得到這個錯誤:

Error Code : 1248 Every derived table must have its own alias 
+0

讓我困惑的是,你有'retailerId'的字符串表達式,但無論如何查找它。你爲什麼這樣做? – Carsten

+0

只需說出「SELECT'kioskpb20130909045617_recharge';」可以節省很多時間;因爲你並沒有從數據庫中真正獲得很多新信息(除了存在記錄)。 –

回答

3

你的錯誤非常明顯。創建一個別名:

SELECT DISTINCT 
    col1 
FROM 
    (select concat(retailerId,'_recharge') from retailerinformation where Channel='videocon' and retailerId='kioskpb20130909045617') AS tmp_table 

提示:如果你嘗試瞭解錯誤,而不是僅僅看他們 - 這將是成功的故事。

0

試試這個版本:

select DISTINCT col1 from 
(select concat(retailerId,'_recharge') from retailerinformation 
    where Channel='videocon' and retailerId='kioskpb20130909045617') as retailerino 

注意你的子查詢的別名。

0

這將工作:

SELECT 
DISTINCT col1 
FROM (
    SELECT concat(retailerId,'_recharge') 
    FROM retailerinformation where Channel='videocon' and retailerId='kioskpb20130909045617' 
    ) AS alias 
0

除了添加別名的子查詢,呼籲外部查詢列應在子查詢存在。在這種情況下,col1應該存在於子查詢中。這就是說,這應該是工作

SELECT DISTINCT col1 
FROM 
    (
    SELECT CONCAT(retailerId,'_recharge') col1 FROM retailerinformation 
    WHERE Channel='videocon' AND retailerId='kioskpb20130909045617' 
) sub 
相關問題