[SQL] Recherches plusieurs critères dans plusieurs tables Le sujet est résolu

PHP, JavaScript, Python, C#, VB.NET, C++, etc, y compris d'autres types de langages (HTML, CSS, SQL)
j
jeanmichel0404
Membre fidèle
Membre fidèle
Messages : 247
Inscrit le : 17 août 2012
Version d'Excel : 2010FR

Message par jeanmichel0404 » 2 octobre 2019, 17:46

Bonjour,

1 base de données avec plusieurs tables : janvier, février, mars, avril, ...... septembre.
Chacune de ces tables sont constituées des mêmes colonnes, dans le même ordre avec une colonne intitulée ANI qui contient des numéros de téléphones au format +33.

Si je cherche les enregistrements pour le mois de janvier pour le numéro de téléphone +33123456789, je tape la requête suivante :

select * from janvier where ANI = '+33123456789'

Si je souhaite chercher aujourd'hui tous les appels du +33123456789 depuis le 1er janvier, je suis obligé de faire la requête table par table.

Ma question : Est-il possible d'avoir une requête "unique" qui irait chercher dans l'ensemble des tables janvier à septembre ?
Même chose si je recherche plusieurs numéros de téléphone ?

Merci
Jean-Michel
Avatar du membre
Sébastien
Administrateur
Administrateur
Messages : 2'090
Appréciations reçues : 223
Inscrit le : 4 décembre 2004
Version d'Excel : 2016 FR
Version de Sheets : FR
Contact :
Téléchargements : Mes applications

Message par Sébastien » 4 octobre 2019, 10:45

Bonjour,

A ta place. je regrouperais toutes les tables en une seule en ajoutant une colonne "mois" (avec des valeurs de 1 à 12) ;;)

Ta requête deviendrait alors (pour janvier à septembre) :
select * from nouvelle_table where ANI = '+33123456789' and mois < 10
Si tu créais de nouvelles tables pour chaque année, ajoute également une colonne "année".

Cordialement,
Sébastien
j
jeanmichel0404
Membre fidèle
Membre fidèle
Messages : 247
Inscrit le : 17 août 2012
Version d'Excel : 2010FR

Message par jeanmichel0404 » 4 octobre 2019, 11:16

Bonjour Sébastien et merci pour ta réponse.

Malheureusement, je ne suis pas le propriétaire de la base de données, elle est faites telle quelle et je ne peux pas intervenir dessus.
J'ai trouvé une solution avec la commande UNION qui donne

select * from janvier where ANI = '+33123456789'
UNION select * from fevrier where ANI = '+33123456789'
UNION select * from mars where ANI = '+33123456789'

etc.. etc..

Merci
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message