これはなぜ動作しないのか分かりません。基本的には、p.songid WHERE trackDeleted=0
のすべての行をカウントするためにサブクエリを実行しています。私はそれを単独で実行するとき、サブクエリはうまく動作しますが、実装すると、 "サブクエリは1行以上返されます"。MySQLサブクエリが2つ以上の行を返しました
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
私は本質的に、削除トラック= 0のすべてのトラックのトラック数で新しい列を作成しようとしています。私はこれについて他にどのように行くだろうか? – user978905
サブクエリー –
からGROUP BY句とLIMIT句を削除すると、各行に同じ値が返されます。私は、各songidのtracksDeleted = 0の行数を返すことができるようにする必要があります。 – user978905