이것이 작동하지 않는 이유를 알 수 없습니다. 기본적으로 하위 쿼리를 실행하여 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
나는 본질적으로 deletedTrack = 0 인 모든 트랙의 트랙 개수로 새로운 컬럼을 생성하려고합니다. 어떻게 내가 이것에 대해 갈 것이냐? – user978905
하위 쿼리 –
에서 GROUP BY 및 LIMIT 절을 제거하면 각 행에 동일한 값이 반환됩니다. 각 songid에 대해 tracksDeleted = 0 인 행 수를 반환 할 수 있어야합니다. – user978905