子查询 returns 多行错误

subquery returns more than one row error

好的,关于 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 的保留字 - 这可能是我必须尽快纠正的问题;虽然我怀疑它在这种情况下的问题。

查询的目的是 select 天 = 0 的特定时间的最大实例数。

问题很明显:

    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 )

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