Comment puis-je écrire une requête SQL pour détecter les doublons dans les clés primaires?
Supposons que je veuille modifier la table de sorte que mes clés primaires sont comme suit
user_id
, round
, tournament_id
Actuellement il y a des doublons que j'ai besoin de nettoyer. Qu'est-ce que la requête pour trouver tous les doublons?
C'est pour MySQL et je voudrais voir les lignes en double
Ce SGBD est-ce pour? Et vous voulez voir les lignes en double ou juste le dupliquer des clés?
Est-ce que votre table actuellement une clé primaire? Si oui, quel est-il?
tbh, vous ne pouvez pas garder un double des clés primaires
ce qui est exactement la motivation pour la question. L'OP est clair qu'ils auront besoin de nettoyer ces doublons avant implemting leur Clé Primaire. Edit: Oh, je vois ce que tu veux dire. Juste remarqué le titre.
Est-ce que votre table actuellement une clé primaire? Si oui, quel est-il?
tbh, vous ne pouvez pas garder un double des clés primaires
ce qui est exactement la motivation pour la question. L'OP est clair qu'ils auront besoin de nettoyer ces doublons avant implemting leur Clé Primaire. Edit: Oh, je vois ce que tu veux dire. Juste remarqué le titre.
OriginalL'auteur deltanovember | 2011-05-08
Vous devez vous connecter pour publier un commentaire.
Techniquement, vous n'avez pas besoin d'une telle requête; les SGBDR vaut son sel ne sera pas permettre l'insertion d'une ligne qui serait de produire un double de la clé primaire dans la table. Une telle chose viole la définition d'une clé primaire.
Toutefois, si vous êtes à la recherche d'écrire une requête trouver les doublons de ces groupes de colonnes avant l'application d'une clé primaire pour la table qui se compose de ces colonnes, puis c'est ce que vous voulez:
Le ci-dessus ne vous donnera la combinaison de colonnes qui ont plus d'une ligne pour la combinaison, si vous voulez voir toutes les colonnes dans les rangs, vous devez effectuer les opérations suivantes:
Notez que vous pouvez également créer un table temporaire et de le rejoindre sur que si vous avez besoin d'utiliser les résultats à plusieurs reprises.
OriginalL'auteur casperOne
C'est ce que vous cherchez.
Dans
table
:sera de retour
OriginalL'auteur Zalaboza
En supposant que vous avez une table avec ces trois colonnes, ou que vous pouvez faire et remplir un tableau avec ces trois colonnes, cette requête afficher les doublons.
OriginalL'auteur Mike Sherrill 'Cat Recall'
Cette requête sélectionne toutes les lignes de la table clients qui ont un nom en double, mais montre également l'e-mail de chaque double.
L'inconvénient de cette est que vous avez la liste de toutes les colonnes que vous voulez de sortie deux fois, une fois dans le
SELECT
et une fois dans laGROUP BY
clause. L'autre approche consiste à utiliser une sous-requête ou de se joindre à filtre de la table par rapport à la liste des doubles des clés.OriginalL'auteur Neil