タイトル
Personテーブルに重複するすべての電子メールを削除するには、SQLクエリを書く、重複したメールボックスが唯一の最小同上を保持します。
クエリを実行した後、例えば、上記のPersonテーブルには、次の行を返す必要があります:
ヒント:
SQL、Personテーブルの全体の出力を実行した後。
delete文を使用してください。
分析
方法:DELETE WHERE句と
アルゴリズム
私たちは、独自の電子メール欄にこのフォームに接続するには、次のコードを使用することができます。
MySQLの
SELECT p1.*
FROM Person p1,
Person p2
WHERE
p1.Email = p2.Email
;
その後、我々は、同じメールアドレスでより大きなID他のレコードを見つける必要があります。だから我々はこのような新しい条件にWHERE句を追加することができます。
MySQLの
SELECT p1.*
FROM Person p1,
Person p2
WHERE
p1.Email = p2.Email AND p1.Id > p2.Id
;
我々は、削除するレコードを持っているので、我々は最終的にDELETEステートメントを変更することができますので。
MySQLの
DELETE p1 FROM Person p1,
Person p2
WHERE
p1.Email = p2.Email AND p1.Id > p2.Id
答え
delete p1.* from
Person as p1,
Person as p2
where
p1.email = p2.email
and
p1.id > p2.id;
select * from Person;