子查询返回多个行错误

时间:2015-07-08 11:50:09

标签: mysql sql select correlated-subquery

好的,有一些关于SO的问题有相同的标题,但我无法想到如何更具体。

这让我感到困惑的原因是返回多行是我的子查询(之一)的理想效果

SELECT MAX(theCount) FROM
    (SELECT FK_Hour, Count(FK_Hour) As theCount FROM 
        (Select FK_Hour 
        From slottime 
        INNER JOIN time ON slottime.FK_Hour = time.Hour 
        WHERE FK_Hour = 
            (SELECT time.Hour FROM time WHERE time.day=0 )
        ) As C 
        GROUP By FK_Hour
    ) AS counts;

我意识到时间是MySQL的保留词 - 这可能是我不得不尽快纠正的事情;虽然我在这种情况下怀疑它的问题。

查询的目的是选择特定小时的最大实例数,其中day = 0。

MySQL phpmyadmin designer

1 个答案:

答案 0 :(得分:4)

问题很明显:

    WHERE FK_Hour = (SELECT time.Hour FROM time WHERE time.day=0 )

最简单的解决方案是将=更改为in

    WHERE FK_Hour IN (SELECT time.Hour FROM time WHERE time.day=0 )

但是,您可能需要检查数据以确定这是否是您真正想要的。