IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Recherche de doublons avec jointure


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 105
    Points : 57
    Points
    57
    Par défaut Recherche de doublons avec jointure
    * Bonjour, *

    J'ai une table de personne et une table des adresses.
    Je recherche les doublons sur les personnes ayant même nom et même code postal.

    J'ai utilisé une vue pour avoir artificiellement le nom et le code postal dans la même table et j'utilise le requête suivante qui marche bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT DISTINCT `a`.* 
    FROM `contactvue` AS `a`  
    INNER JOIN `contactsimplevue` AS `b` 
    ON a.nom =a.nom 
       and a.prenom = b.prenom 
       and a.cp=b.cp 
       and a.id != b.id 
    WHERE (a.id is not null) 
    ORDER BY `nom` asc, `cp` asc 
    LIMIT 1000
    J'ai voulu améliorer ma requête pour avoir aussi les doublons non exact (avec un like)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT DISTINCT `a`.* 
    FROM `contactsimplevue` AS `a`  
    INNER JOIN `contactsimplevue` AS `b` 
    ON a.nom like CONCAT(b.nom,"%")  
       and a.cp=b.cp 
       and a.id != b.id 
    WHERE (a.id is not null) 
    ORDER BY `nom` asc, `cp` asc 
    LIMIT 1000
    Cette requête n’aboutis pas (query interrupted) sur ma base de prod alors qu'elle marche bien sur ma base de dev (même volume de données).
    J'imagine qu'elle est jugée trop gourmande par l’hébergeur (OVH)

    Ai-je un moyen de la simplifier ? sans utiliser une vue ?

    Ma table contact est un peu grosse mais pas tant que ça (16 000 enregistrements)

    * Merci *

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    bonjour,


    Si vous ne mettez pas le code de la vue on ne pourra pas deviner si les choses sont simplifiables ou non.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 105
    Points : 57
    Points
    57
    Par défaut
    La vue est super basique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    create ALGORITHM = MERGE view contactsimplevue as 
    SELECT t1.*, t2.cp
    FROM personne AS t1
    LEFT JOIN adresse AS t2 ON t2.refpersonne = t1.id

    la table personne ne contient que id, nom, prenom

Discussions similaires

  1. [AC-2003] Recherche de doublons avec VBA
    Par Dokko974 dans le forum VBA Access
    Réponses: 9
    Dernier message: 30/12/2010, 21h00
  2. [XL-2003] recherche de doublon avec plusieurs conditions
    Par fullmetalknet dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 12/12/2009, 11h03
  3. Réponses: 12
    Dernier message: 23/05/2007, 10h37
  4. recherche aide pour requete avec jointure
    Par nebil dans le forum Requêtes
    Réponses: 5
    Dernier message: 21/08/2006, 17h03
  5. Réponses: 1
    Dernier message: 07/05/2006, 11h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo