MySQL错误:子查询返回超过1行

时间:2011-02-14 13:41:32

标签: mysql sql mysql-error-1242

获取错误:#1242 - Subquery returns more than 1 row

执行此

SELECT `Index` , `FundName` ,Count(*), 
    (SELECT COALESCE(sum(b.PricePerWeek),0) 
     FROM tbl_FundSubscriptions
     WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) <= SubscribeDt  
     GROUP BY FundIDSend)

FROM tbl_FundSubscriptions b, tbl_FundStatic a

WHERE a.FundID = b.FundIDSend

AND FundIDSend IN 
    (SELECT FundID
     FROM tbl_FundStatic
     WHERE UserID = '14')

GROUP BY a.FundName,a.Index 

可能出现什么问题?

由于

2 个答案:

答案 0 :(得分:0)

您的子查询返回的行数超过1行。

您可以将子查询LIMIT添加到一行,也可以LEFT JOIN将其与另一个表一起使用。

答案 1 :(得分:0)

这是您正在寻找的查询吗?不知道你的表结构,我们永远都不会知道,但是你的查询似乎已经缩进了。 (这有什么意义吗?)

SELECT `Index`, `FundName`, COUNT(*), 
    (SELECT SUM(`PricePerWeek`)
     FROM `tbl_FundSubscriptions`
     WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) <= `SubscribeDt` 
           AND `FundIDSend` = `tbl_FundStatic`.`FundID`)

FROM `tbl_FundStatic`

WHERE `UserID` = '14'