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 :

Requêtes et sous requêtes


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 90
    Points : 31
    Points
    31
    Par défaut Requêtes et sous requêtes
    Bonjour,

    J'ai une table avec nom, prénom, téléphone, etc ...

    Les noms ne sont pas toujours orthographiés de la même manière, mais correspondent au même nom de base,
    par exemple DUPPONT, DUPPOND, DUPON, DUPONT, etc ... correspondent tous au même patronyme DUPOND

    J'ai fait une autre table variante qui comprend toutes ces variantes de patronyme comme ceci :

    code nom
    100 DUPOND
    100 DUPONT
    100 DUPPONT
    100 DUPPOND
    100 DUPON
    101 MARTIN
    101 MARTING
    101 MARETIN
    etc ...

    Quand je saisi un nom qui se trouve dans mon code 100, je souhaiterais faire une requête qui m'affiche tous les noms correspondant au code 100 par exemple.

    Si je saisi DUPONT, la requête devrait me renvoyer les DUPOND, DUPPONT, DUPPOND, DUPON, DUPONT, avec leur prénom et téléphone correspondant.

    Je n'arrive pas à faire cette requête, avez vous une idée ?
    Merci d'avance.

  2. #2
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 590
    Points
    3 590
    Billets dans le blog
    8
    Par défaut
    Salut
    Essaye...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select t1.code, t2.*
    from latable as t1 inner join latable as t2 on t1.code=t2.code
    where t1.nom="dupont"
    @+
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 90
    Points : 31
    Points
    31
    Par défaut
    Merci mais çà ne marche pas car je n'ai le code (100 par exemple) que dans la table variante.

    Ce code me sert dans cette table pour regrouper les noms correspondant à un même patronyme.

    Dans la table principale je n'ai que les noms (et les autres renseignements les concernant).

    Ce qui est commun aux 2 tables ce sont les noms et c'est ceux ci que je veux tous afficher lorsque j'en saisi un parmi d'autres.
    Merci.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 90
    Points : 31
    Points
    31
    Par défaut
    Ce que je souhaite c'est avoir une requête unique avec sous requête qui me remplace ce qui suit :

    select * from variante_nom where nom_var = "DUPPONT"
    dans resultat on trouve code = 100
    boucle sur variante_nom avec code = 100
    ..select table nom avec nom = nom_var
    ..affichage résultat table nom
    fin boucle

    C'est faisable ?
    Merci

  5. #5
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 590
    Points
    3 590
    Billets dans le blog
    8
    Par défaut
    Salut
    Je pensais à une seule table
    Essaye...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT variante_nom.code, table_nom.*
    FROM variante_nom INNER JOIN table_nom ON variante_nom.code=table_nom.code
    WHERE variante_nom.nom="dupont"
    Par ailleurs, comment vois-tu une boucle avec requête?
    Les boucles avec SQL c'est la jointure, la récursivité ou le SQL procédural!
    @+
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 90
    Points : 31
    Points
    31
    Par défaut
    désolé mais je n'ai la colonne code que dans la table variante_nom, donc ton test "variante_nom.code=table_nom.code" ne peut pas marcher.

    ce ne sont que les noms qui sont communs aux 2 tables

    et le code dans la table variante_nom y est présent pour dire que tous les codes 100 (par exemple) correspondent au patronyme DUPOND.

    table 'nom' avec id, nom, prenom, etc ...

    table 'variante_nom' avec id, code, nom_var

    Merci

  7. #7
    Membre averti
    Profil pro
    Administrateur
    Inscrit en
    Mai 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 237
    Points : 433
    Points
    433
    Par défaut
    Citation Envoyé par theo17 Voir le message
    désolé mais je n'ai la colonne code que dans la table variante_nom, donc ton test "variante_nom.code=table_nom.code" ne peut pas marcher.

    ce ne sont que les noms qui sont communs aux 2 tables

    et le code dans la table variante_nom y est présent pour dire que tous les codes 100 (par exemple) correspondent au patronyme DUPOND.

    table 'nom' avec id, nom, prenom, etc ...

    table 'variante_nom' avec id, code, nom_var

    Merci
    Juste par curiosité : le code 100, 101, 102 est - t - il généré manuellement ?

    Essayez cette piste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT v.code, n.*
    FROM variante_nom v
    INNER JOIN table_nom n ON v.nom = n.nom
    WHERE v.code IN (SELECT code FROM variante_nom WHERE nom = "dupont")

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 90
    Points : 31
    Points
    31
    Par défaut
    Bonjour et merci de votre réponse.

    Oui les codes 100, 101, ... sont saisis manuellement, dés que je saisi une nouvelle plage de variante.

    J'ai essayé votre select, il marche et me donne tous les noms correspondant au code 100, mais le premier et dernier enregistrement sont affichés 2 fois :

    Bernard DUPPONT ...
    Bernard DUPPONT ...
    Thierry DUPONT ...
    Roger DUPOND ...
    Gaston DUPPOND ...
    Patrick DUPON ...
    Patrick DUPON ...

    Pourquoi et comment l'empêcher ??
    Merci de votre réponse.

  9. #9
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 590
    Points
    3 590
    Billets dans le blog
    8
    Par défaut
    Salut
    La répétition doit se trouver au niveau d'une des tables! Essaye
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 90
    Points : 31
    Points
    31
    Par défaut
    Oui dans ma table variante j'avais 2 fois le même nom, en le supprimant je trouve bien mes lignes de noms de ma table nom.
    C'est une vérification que je n'avais pas pensé à faire.
    Merci beaucoup à tous de votre aide.
    Bonne journée.

Discussions similaires

  1. Requête et sous requête
    Par 501darts dans le forum Développement
    Réponses: 1
    Dernier message: 21/02/2008, 10h53
  2. intégré une sous requête dans une requête
    Par Smix007 dans le forum SQL
    Réponses: 13
    Dernier message: 25/06/2007, 11h45
  3. inclure une sous requête dans une requête
    Par garsflo dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 08/05/2007, 19h12
  4. Requête et sous requête avec SELECT et UPDATE
    Par Véronique75ca dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 29/06/2006, 21h25
  5. Requêtes et sous requêtes
    Par lau2nyce dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/03/2004, 15h14

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