子查询 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 )
但是,您可能需要检查您的数据以确定这是否是您真正想要的。
好的,关于 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 )
但是,您可能需要检查您的数据以确定这是否是您真正想要的。