Mysql 检索子查询中具有“0”的单个列;拥有;条件
我有一个子查询,它包含一个“having”条件。所以我必须在select子句的having条件中添加参数,对吗 我得到了子查询:Mysql 检索子查询中具有“0”的单个列;拥有;条件,mysql,in-subquery,Mysql,In Subquery,我有一个子查询,它包含一个“having”条件。所以我必须在select子句的having条件中添加参数,对吗 我得到了子查询: 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 =
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)
当返回四列时,明显失败的是:(
我能做什么
更新:
选择justsfd.id
会导致错误:错误1054(42S22):“having子句”中的未知列“sfd.StartTime”
更改“having”我不明白您试图做什么。having子句仅在与GROUP BY子句结合使用时使用。在您的情况下,我建议您可以这样做:
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
选择sfd.id
来自ssp.SessionFloatData sfd,ssp.SessionData_每日sd
其中名称='nsrserverhost'和参数='storagenode'
和sfd.StartTime=sd.StartTime
和sd.id=sfd.id
按sfd.id分组
因此,所拥有的内容被传递到WHERE子句。这是您想要的吗?您是否尝试删除其他列?另外,是否缺少
GROUP BY
子句?如果没有,请删除HAVING
语句并包含在WHERE
中。
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