どのようにJOINSを使用してMySQLテーブルで使用可能な重複値を見つけるか

要找到MySQL表中可用的重复值,我们可以使用JOINS来执行以下步骤:

  1. GROUP BY と HAVING の句を使用して、必要な列を(重複する値をもとに)検索し、SELECT クエリ文を作成して、重複する値を検索します。たとえば、「users」というテーブルがあり、「email」という列に重複するメールアドレスがあるとします。この場合、クエリは次のようになります。
SELECT email, COUNT(*) as count
FROM users
GROUP BY email
HAVING count > 1;
  1. 重複するメールアドレスと、その重複回数を結果セットで返すクエリを実行します。この結果セットの一時テーブルを利用して、元のテーブルと結合することで、重複値を含む完全な行を取得することができます。結合には重複値を結合条件として使用してINNER JOINを行います。例えば、重複するメールアドレスを含む完全な行を取得したい場合、次のクエリを使用します。
SELECT u.*
FROM users u
INNER JOIN (
SELECT email, COUNT(*) as count
FROM users
GROUP BY email
HAVING count > 1
) duplicates ON u.email = duplicates.email;

重複したメールを含む行全体を返すクエリです。

同一テーブル内での重複値検索にのみ使用可能なクエリであることに注意してください。複数のテーブル間で重複値を検索したい場合は、UNIONおよびサブクエリを使用したより複雑なクエリを使用する必要がある場合があります。

bannerAds