我有以下数据库结构:
- 歌曲(ID,...)
- 审查(SongID,接受)
我想查看所有歌曲并计算一首歌有多少接受和拒绝。
我有以下查询:
SELECT s.*, COUNT(ra.ID) as Accepts, COUNT(rd.ID) as Declines
FROM song s
LEFT OUTER JOIN review ra ON s.ID = ra.SongID AND ra.Accept = 1
LEFT OUTER JOIN review rd ON s.ID = rd.SongID AND rd.Accept = 0
GROUP BY s.ID
这不会产生正确的结果。我有一首歌有 3 个接受和 1 个拒绝,查询输出 3 个接受和 3 个拒绝。我该如何解决?