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 3 tables


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2015
    Messages : 262
    Points : 121
    Points
    121
    Par défaut Requête 3 tables
    Bonjour,

    J'aimerai réaliser une/des requêtes sur 3 tables.*

    Exemple :

    TableA TA

    • id_A
    • nom
    • prenom
    • age



    TableB TB

    • id_B
    • id_A
    • id_C
    • convoquer => (valeur par défaut dans la BDD = 'NON') - valeur possible pour l'utilisateur OUI ou NON
    • confirmer => (valeur par défaut dans la BDD = 'NON') - valeur possible pour l'utilisateur OUI ou NON



    TableC TC

    • id_C
    • role
    • level



    J'aimerai faire cela :

    SELECT * FROM TA

    + (plus)

    SI CELA EXISTE

    SELECT convoquer, confirmer

    FROM TB

    WHERE TA.id_A = TB.id_A AND TB.id_C = TC.id_C

    SINON RETOURNE LES VALEURS PAR DEFAUT ('NON', 'NON')

    Autrement dit, si dans la tableB il y a un enregistrement avec TA.id_A = TB.id_A ET TB.id_C = TC.id_C retourne le résultat en plus de la TableA SINON est-il possible de retourner des valeurs par défaut du type ('NON', 'NON');

    j'espère avoir été assez clair.*

    Merci pour votre aide.*

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Bonjour,
    Comme tu peux ne pas avoir de lignes correspondantes dans les tables B et C, il faut passer par une jointure externe:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    select *
    from TableA as a
    left outer join TableB as b
    inner join TableC as C on // ici le critère de jointure entre B et C
    on // ici le critère entre A et B
    Ensuite dans le SELECT, pour les données "manquantes" tu peux regarder du côté de COALESCE().

    Tatayo.

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2015
    Messages : 262
    Points : 121
    Points
    121
    Par défaut
    Merci cela semble très bien marcher...

    J'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    select b.id_B, a.id_A, b.convoquer, b.confirmer
    from TableA as a
    left outer join TableB as b
    inner join TableC as C on 
    b.id_C = c.id_C
    on 
    a.id_A = b.id_A
    je vais chercher COALESCE() ??

Discussions similaires

  1. NuméroAuto dans une requête création table
    Par JimmyB dans le forum Access
    Réponses: 1
    Dernier message: 07/03/2006, 23h40
  2. Ajout Résultat Requête dans Table en VBA
    Par lito74 dans le forum Access
    Réponses: 4
    Dernier message: 24/02/2006, 15h43
  3. requête : même Table utulisée plusieurs fois
    Par nico2280 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/11/2005, 16h04
  4. Réponses: 4
    Dernier message: 25/10/2005, 20h42
  5. Requête sur table à double clés primaires
    Par darkian dans le forum Langage SQL
    Réponses: 4
    Dernier message: 04/03/2005, 17h28

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