我不明白为什么这不起作用。基本上,我正在运行一个子查询来计算p.songid WHERE trackDeleted=0
的所有行。当我自己执行它时,子查询工作正常,但是当我实现时,我得到“子查询返回多于一行”。MySQL子查询返回多于一行
SELECT u.username, u.id, u.score, s.genre, s.songid, s.songTitle, s.timeSubmitted, s.userid, s.insWanted, s.bounty,
(SELECT COUNT(p.songid)
FROM songs s
LEFT JOIN users u
ON u.id = s.userid
LEFT JOIN posttracks p
ON s.songid = p.songid
WHERE p.trackDeleted=0
GROUP BY s.timeSubmitted ASC
LIMIT 25)
AS trackCount
FROM songs s
LEFT JOIN users u
ON u.id = s.userid
LEFT JOIN posttracks p
ON s.songid = p.songid
WHERE paid=1 AND s.timeSubmitted >= (CURDATE() - INTERVAL 60 DAY)
GROUP BY s.timeSubmitted ASC
LIMIT 25
我基本上试图创建一个新的列与轨道数所有轨道WHERE deletedTrack = 0。我还会怎么做呢? – user978905
只需从子查询中删除GROUP BY和LIMIT子句 –
如果我这样做,它会为每一行返回相同的值。我需要它能够返回每个songid的tracksDeleted = 0的行数。 – user978905