Bonjour,
J'essaye de faire une requête mais je ne sais pas si cela est bien possible.
Code:
1
2
3
4 SELECT * FROM code_postal WHERE cp LIKE (SELECT debut_cp FROM departement WHERE departement.id_region=1)
Vous voyez l'idée?
Version imprimable
Bonjour,
J'essaye de faire une requête mais je ne sais pas si cela est bien possible.
Code:
1
2
3
4 SELECT * FROM code_postal WHERE cp LIKE (SELECT debut_cp FROM departement WHERE departement.id_region=1)
Vous voyez l'idée?
Bonjour,
Effectivement le LIKE ne fonctionne pas comme cela
Dans votre cas si les données sont au format chaine de caractère (ce qui est nécessairement le cas pour LIKE, j'essayerai la requete suivanteCode:
1
2
3 SELECT * FROM code_postal WHERE cp LIKE '01%';
Code:
1
2
3
4 SELECT * FROM code_postal WHERE substring(cp,1,2) IN (SELECT debut_cp FROM departement WHERE departement.id_region=1)
Attention : sémantiquement la commune ou le village relatif à un code postal n'est pas forcément dans le même département. Les exemples sont légion !
Par exemple Laveyrune a pour code postal 48250 (48 étant le code de la Lozère), alors qu'elle est située dans l'Ardèche (07).
Même chose pour toutes les communes de Corse...
A+
Ah ben ça alors! Pour une surprise!
Je vois que tes compétences ne se limitent pas à la base de données SQL Pro
Merci bcp :king:
Du coup, pas le choix! il va falloir que l'on référencie chaque code postaux par rapport au departement (à travers un id_departement sur la table des codes postaux)
C'est ce que je voulais éviter mais bon... la requête n'en sera que plus performante
Pour information, voici la liste des villes/villages dont les codes postaux ne correspondent pas au numéro de leur département :
Ci dessous la liste (hors Corse) des villes dont les deux premiers chiffres sont différents du numéro de département.
Insee Nom Code postal
020285 Escaufourt 59360
030250 Saint Pierre Laval 42620
040058 Claret 05110
040066 Curbans 05110
040150 Piégut 05130
040154 Pontis 05160
040170 Rochette 06260
040194 Saint Pierre 06260
040234 Venterol 05130
050047 Éourres 26560
070136 Laveyrune 48250
140174 Condé sur Noireau 61790
150105 Leyvaux 43450
240179 La Feuillade 19600
240189 Fougueyrolles 33220
240335 Port Sainte Foy et Ponchapt 33220
260374 Villebois les Pins 05700
270193 Croth 28520
280131 Dommerville 91670
380446 Saint Pierre d'Entremont 73670
390012 Antorpe 25410
390102 Chancia 01590
390274 Lajoux 01410
390283 Lavancia Épercy 01590
440060 Fresne sur Loire 49123
440219 Vritz 49440
510478 Saint Eulien 52100
510522 Sapignicourt 52100
530187 Ravigny 61420
550227 Han devant Pierrepont 54620
590097 Boursies 62147
590176 Doignies 62147
590293 Haverskerque 62350
590405 Moeuvres 62147
690228 Saint Maurice sur Dargoire 42800
710085 Change 21340
740109 Éloise 01200
740235 Saint Germain sur Rhône 01200
800756 Thièvres 62760
830105 Riboux 13780
860042 Buxeuil 37160