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 :

Faire "remonter" les données dans des requetes imbriquées


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    août 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2006
    Messages : 37
    Points : 16
    Points
    16
    Par défaut Faire "remonter" les données dans des requetes imbriquées
    Bonjour

    J'ai 4 tables :
    client -> id , nom , id_adresse
    adresse -> id , rue , id_ville
    ville -> id , nom , id_pays
    pays -> id , nom

    pour retrouver les clients se trouvant dans un pays dont le nom commence par F j'utilise cette requete :

    SELECT DISTINCT nom FROM client
    WHERE client.id_adresse
    IN (
    SELECT DISTINCT id FROM adresse
    WHERE adresse.id_ville
    IN (
    SELECT DISTINCT ville.id FROM ville,pays
    WHERE ville.id_pays = pays.id AND pays.nom LIKE 'f%'
    ORDER BY pays.nom
    )
    )


    le problème c'est que ceci ne me retourne au final que les infos de la table client, et je souhaiterais avoir aussi les noms des pays correspondants (voire les nom des villes et les adresses de chaque client)

    y a t'il un moyen de faire tout ça dans la même requete ? ou bien suis-je obligé de refaire des requetes client par client pour retrouver leur adresse/ville/pays ?

    merci d'avance

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2005
    Messages : 3 281
    Points : 4 641
    Points
    4 641
    Par défaut
    regarde du coté des jointures !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    août 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2006
    Messages : 37
    Points : 16
    Points
    16
    Par défaut
    ouep, j'ai jetté un oeil aux jointures, mais je suis un peu largué
    un petit exemple dans ce cas précis ne serait pas de refus

    merci

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    août 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2006
    Messages : 37
    Points : 16
    Points
    16
    Par défaut
    arf... je pense avoir trouvé

    SELECT client.*,pays.nom
    FROM client
    INNER JOIN adresse ON client.id_adresse = adresse.id
    INNER JOIN ville ON adresse.id_ville = ville.id
    INNER JOIN pays ON ville.id_pays = pays.id
    WHERE pays.nom like 'f%'

    bon, maintenant, il faut que je vois si ça marche sur mon cas réel, qui contient des liaisons plus complexes entre les tables :p


    encore merci pour l'info !

  5. #5
    Membre éprouvé
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : juillet 2006
    Messages : 871
    Points : 1 118
    Points
    1 118
    Par défaut
    Ne pas oublier le merci
    C'est le signe d'un fou, qu'avoir honte d'apprendre
    Ubuntu 10.04 Lucid Lynx @home
    LE guide libre Linux & Ubuntu pour tous : Simple comme Ubuntu

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    août 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2006
    Messages : 37
    Points : 16
    Points
    16
    Par défaut
    oups, sorry

    je me fouetterais ce soir avant de me coucher

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 20
    Dernier message: 14/04/2017, 18h25
  2. Réponses: 1
    Dernier message: 09/05/2012, 11h22

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