5 votes

Filtrer les lignes en double dans mysql en utilisant l'identifiant du client

J'ai deux tables.

table des clients

Il dispose de 3 champs..

  1. Numéro de client
  2. prénom
  3. nom de famille

tableau des adresses des clients

Il comporte 2 champs

  1. Numéro de client
  2. adresse

Mon problème est que ma table de clients contient 259 lignes, alors que ma table d'adresses de clients contient plus de 400 lignes. Je veux dire que ma table d'adresse client contient des lignes en double.

Maintenant, je voudrais sélectionner uniquement les lignes uniques de mon tableau d'adresses de clients...

Quelqu'un peut-il m'aider ?

Gracias

11voto

newfurniturey Points 16866

Dans le cas où le customer_id y address sont les mêmes pour chaque doublon, vous pourriez utiliser DISTINCT :

SELECT DISTINCT(`customer_id`), `address` FROM `customer_addresses`;

Si un client a deux adresses différentes dans la table, vous recevrez deux résultats avec la requête ci-dessus. Pour obtenir un seul résultat par client, vous pouvez utiliser GROUP BY :

SELECT `customer_id`, `address` FROM `customer_addresses` GROUP BY `customer_id`;

Il sera garanti qu'un seul résultat sera obtenu par client.

S'appuyer sur l'utilisation de GROUP BY vous pouvez également l'utiliser pour trouver les clients ayant des entrées en double :

SELECT `customer_id` FROM `customer_addresses` GROUP BY `customer_id` HAVING COUNT(*) > 1;

Cela ne donnera que les clients qui ont des entrées en double (c.-à-d. un nombre >1) dans la base de données des clients. customer_addresses qui pourrait vous aider à résoudre votre problème de doublon.

-1voto

Daniel F. Thornton Points 3024

Ajouter le DISTINCT à votre déclaration SQL.

Référence : http://www.techonthenet.com/sql/distinct.php

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X