Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 检索子查询中具有“0”的单个列;拥有;条件_Mysql_In Subquery - Fatal编程技术网

Mysql 检索子查询中具有“0”的单个列;拥有;条件

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 =

我有一个子查询,它包含一个“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 = sfd.id 
HAVING (sfd.StartTime <= sd.StartTime AND sfd.EndTime >= sd.StartTime)
当返回四列时,明显失败的是:( 我能做什么

更新: 选择just
sfd.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