4

民主党員または共和党員として登録されておらず、一度しか投票していない有権者テーブルからすべての有権者を削除しようとしています。congress_members、voters、votes の 3 つのテーブルを持つデータベースがあり、正しいデータを削除するために投票者と投票を結合する必要があります。

このコードは、削除したいデータを見つけます。

SELECT voters.*
FROM voters JOIN votes ON voters.id = votes.voter_id
WHERE party = 'green' OR party = 'na' OR party = 'independent'
GROUP BY votes.voter_id
HAVING COUNT(*) = 1;

しかし、JOINステートメントで削除しようとするたびにエラーが発生するため、削除できません

4

2 に答える 2

8

deleteこれはwith awhere句として表現できます。

delete from voters
    where votes.party not in ('democrat', 'republican') and
          voters.id in (select id from votes group by id having count(*) = 1);
于 2013-09-10T01:25:17.347 に答える