Ошибка MySQL: подзапрос возвращает более 1 строки
Получение ошибки: #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 ответа
Решение
Это запрос, который вы ищете? Не зная структуры вашей таблицы, мы никогда не узнаем, но это делает то, что, по-видимому, было сделано для вашего запроса. (Это имеет какой-то смысл вообще?)
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'
Ваш подзапрос возвращает более 1 строки.
Или вы LIMIT
подзапрос к одной строке или вам LEFT JOIN
это с другой таблицей.