所以我有一個表在我的數據庫(我將稱之爲測試)。該表名爲Items,並具有名爲itemID的int列和名爲currently的小數(8,2)列。它們分別表示物品的唯一ID和物品的當前出價。當前列可以爲NULL,因爲可能還沒有出價。mysql:表別名不存在
我的目標是獲取具有至少一個出價的當前最高出價的商品的商品ID。我有一個MySQL查詢看起來如下:
select itemID
from (select itemID from Items where numBids > 0) as b
where currently = (select max(currently) from b);
當我在mysql中執行此,我得到一個錯誤,指出:
ERROR 1146 (42S02): Table 'Test.b' doesn't exist
誰能解釋這是怎麼回事呢?我有一段時間沒有使用過MySQL,所以我生疏了。爲了完成這樣的事情,我是否必須與自身進行項目連接?任何幫助,將不勝感激。
啊,謝謝。這是否需要重新考慮我的查詢結構? –
嘗試從項目b中選擇b.itemID,其中b.numBids> 0和b.currently =(從項目a中選擇max(a.currently),其中a.itemID = b.itemID和a.numBids> 0); – carpii
carpii:謝謝,但是這個查詢需要很長時間才能執行(至少在我的機器上)。 –