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ête avec plusieurs tables


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 31
    Par défaut requête avec plusieurs tables
    Bonjour,

    Je suis débutant en MySQL et j'ai besoin d'extraire des informations d'une base de données existante et j'ai quelques soucis. Je vous explique:

    il y a une table dans laquelle se trouvent mes informations. Par contre, dans certains champs, l'information est codée et l'information en clair est dans une autre table. Avec 2 tables, j'arrive à les lier sans problème avec une requête du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select * 
    from table1,table2 
    where table2.code=table1.codetable2 and table1.prenom='morice'
    Maintenant, pour 3 tables, je n'y arrive pas. J'essaye de vous décrire l'arborescence :

    table1.prenom='morice'
    table1.nom='durand'
    table1.codetable2='2268'
    Dans l'enregistrement de table2 qui m'interesse j'ai
    table2.code='2268'
    table2.departement='44'
    et j'ai une table3 ou j'ai l'enregistrement
    table3.code='44'
    table3.nom='loire atlantique'
    j'aimerai trouver la requête qui me donnerai le résultat suivant

    morice durand 44 loire atlantique
    Attention c'est un exemple et je ne suis pas maître de la structure de la base de données. Elle est comme ça et on n'y touche pas

    Ai-je été clair?

    Peut on m'aider ? avec des mots simples

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 063
    Par défaut
    Bonjour,

    Plusieurs remarques à propos de vos requête :
    • Prenez tout de suite l'habitude d'écrire les jointures selon la norme SQL 2 (syntaxe INNER JOIN... ON...) plutôt que de séparer les noms des tables par des virgules ;
    • N'utilisez pas le SELECT *, c'est une mauvaise habitude également ;
    • Etes-vous sûr que les champs "code" sont des chaînes de caractères ? Si ce n'est pas le cas, enlevez les quotes (') autour des valeurs de codes.

    Ceci étant dit, voici la requête qui devrait répondre à vos besoins :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT table1.prenom, table1.nom, table2.departement, table3.nom
    FROM table1
    INNER JOIN table2 ON table1.codetable2 = table2.code
    INNER JOIN table3 ON table2.departement = table3.code
    WHERE table1.prenom='morice'
    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 31
    Par défaut merci
    Citation Envoyé par ced Voir le message
    Bonjour,


    ced
    déja merci pour cette réponse je teste tout de suite et je te dis quoi.

    Je viens de tester et c'est ok

    c'est déjà une bonne chose maintenant il me reste 2 difficultés que je vais exposer dans un autre post


    merci

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 28/06/2010, 13h04
  2. Requête sur plusieurs tables avec DLookup ?
    Par Falcdyr dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 07/05/2008, 08h50
  3. Requête avec plusieurs paramètres d'un même champ d'une table
    Par jb.julien dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 21/08/2007, 09h43
  4. Requête : Insert avec plusieurs tables
    Par bleu_ciel dans le forum Access
    Réponses: 4
    Dernier message: 01/06/2006, 21h42
  5. Requête avec des tables de plusieurs bases
    Par Oluha dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/04/2005, 16h56

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