2014-03-28 62 views
0

那麼,我有一個包含「有」條件的子查詢。所以我必須在select條件中添加條件中的參數,對吧?檢索具有「有」條件的子查詢中的單個列

所以我已經得到了子查詢

SELECT sfd.id, sfd.StartTime, sfd.EndTime, sd.StartTime 
FROM ssp.SessionFloatData sfd, ssp.SessionData_daily sd 
WHERE Name = 'nsrserverhost' AND Parameter = 'storagenode' 
AND sd.id = sfd.id 
HAVING (sfd.StartTime <= sd.StartTime AND sfd.EndTime >= sd.StartTime) 

但其實我只是在第一列感興趣的是:我只是想找回id

我的整個語句的摘錄

WHERE sfd.id IN (SELECT sfd.id, sfd.StartTime, sfd.EndTime, sd.StartTime 
... 
       HAVING (sfd.StartTime <= sd.StartTime AND sfd.EndTime >= sd.StartTime)) 

四列返回:(什麼obiously失敗 我能做些什麼

更新: 只選擇sfd.id導致錯誤:ERROR 1054(42S22):未知的'sfd.StartTime'在'having子句'中 更改'有'

+1

您是否嘗試刪除其他列?另外,你是否遺漏了一個「GROUP BY」子句?如果沒有,請刪除'HAVING'語句幷包含'WHERE'。 – sgeddes

回答

1

我不明白你想做什麼HAVING子句是onl y與GRO​​UP BY子句結合使用。在你的情況,我suposse你可以這樣做:

SELECT sfd.id 
FROM ssp.SessionFloatData sfd, ssp.SessionData_daily sd 
WHERE Name = 'nsrserverhost' AND Parameter = 'storagenode' 
AND sfd.StartTime <= sd.StartTime AND sfd.EndTime >= sd.StartTime 
AND sd.id = sfd.id 
GROUP BY sfd.id 

所以什麼是在HAVING傳遞給WHERE子句。這是你想要的嗎?

相關問題