Aller au contenu

Problème de jointure (join left) sur mysql


Sujets conseillés

Posté

Bonsoir,

 

Je cherche à faire une requête avec un double join left mais je sais pas pourquoi je tourne en rond...

 

1ère table:

elle contient des annonces avec un code postal, le nom de la ville, un titre, etc...

 

2ème table:

Elle contient le code postal, le code INSEE de la ville et son nom...
image.png.9085d6791620ac131ff157290eb28590.png

 

3ème table:

Elle contient le code INSEE, le nom de la ville, le nombre d'habitants de la ville.
image.png.0b2f57574055717acd6807684b59faee.png

 

Je ne peux pas me "raccrocher" aux noms des villes car comme les sources ne sont pas identique, ils ne sont pas standardisés à savoir parfois avec des majuscules, des tirets à la place d'espace ou le contraire, bref.

J'ai donc décidé d'utiliser la table 2 qui contient le code INSEE des villes (car j'ai pas les codes postaux dans la table du nombre d'habitants) et le code postal.

Le problème est que plusieurs villes peuvent avoir le même code postal 😞

et... plusieurs villes peuvent avoir le même code région 😞 😞 

 

Alors oui les codes postaux sont normalement sur 5 chiffres mais dans les bases excel que j'ai récupéré, c'était mal formaté du coup les premiers zéro sont absent mais c'est pareil dans toute les table donc on est bon.

 

SELECT annonces.id, annonces.lien, annonces.prix, annonces.code_postal, population.pop2018 FROM `annonces` LEFT JOIN `codesINSEE` ON annonces.code_postal = codesINSEE.code_postal LEFT JOIN `population` ON population.codgeo = codesINSEE.code_commune_INSEE WHERE population.pop2018 > '10000' LIMIT 20;

Le limit 20 sert à limiter les affichages car phpmyadmin m'a planté sur mon dédié 😞 

 

Alors oui ça ne peut pas être parfait car des données (code géos et code postaux) sont identiques, mais c'est déjà pour dégrossis notamment en fonction du nombre d'habitant, puis ensuite il y a une vérification visuelle de correspondance entre la ville indiqué dans l'annonce et celle indiqué dans les bases INSEE. De toute façon si c'est le même code INSEE c'est que les villes sont très proche les unes des autres donc ce n'est pas un problème ici.

 

Avez-vous une idée svp ? Merci 😉 

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...