我正在运行以下查询,该查询一直声明给定了不止一行:
select filestorage.id
from `filestorage`
where (SELECT LEFT(filestorage_inst_data.value, length(filestorage_inst_data.value - 1)) as seconds
FROM filestorage_inst_data
WHERE filestorage_inst_data.parameter = "Time" AND filestorage_inst_data.filestorage_id = filestorage.id) <= 3600
出于某种原因,只有第一个值被传递到子查询中。另外,如果我在子查询中设置了一个限制,那么数据就可以很好地获取,只是我不明白为什么查询会获取多个结果?
2条答案
按热度按时间bweufnob1#
在where子句上给出select语句时,必须传递特定的一行。select子句,您在where子句上使用的子句必须返回一个唯一的行。例如。
mklgxw1f2#
试试这个: