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 et SQL. Discussion :

[AC-2013] Requête sur tables multiples


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    novembre 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : novembre 2006
    Messages : 116
    Points : 100
    Points
    100
    Par défaut [AC-2013] Requête sur tables multiples
    Bonjour,

    je fais suite au précédent topic :
    http://www.developpez.net/forums/d14...s/#post7974357

    J'ai un peu développé les tables pour continuer ma remise à niveau :

    Nom : Relations.png
Affichages : 380
Taille : 59,8 Ko

    Le nouveau point concerne donc le TypeAnimalFK et la RaceFK dans T_Animaux.

    Le but est de dire qu'un Animal est composé d'un TypeAnimal (Chat, Chat...) et d'une Race (Husky par exemple pour un chien, Siamois pour un chat...).

    Donc dans la table, lors de la création/modification d'un élément, il faut choisir le TypeAnimal pour avoir ensuite la liste des races correspondantes mais j'ai un doute que ma relation soit bonne et Access me génère un truc à rallonge (qui ne marche pas) donc je m'interroge :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT T_Races.IdPK, T_Races.Description FROM T_Types INNER JOIN T_Races ON T_Types.IdPK = T_Races.TypeFK INNER JOIN T_Animaux ON T_Animaux.TypeAnimalFK = T_Types.IdPK WHERE (((T_Animaux.TypeAnimalFK)=[T_Races].[TypeFK]));
    Merci.

    Vincent

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    novembre 2006
    Messages
    20 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : novembre 2006
    Messages : 20 583
    Points : 323 652
    Points
    323 652
    Par défaut
    Bonjour,

    D'abord ceci :

    Si vos yeux piquent à cause des fautes d'orthographe, c'est un don que vous pouvez exploiter en cliquant ici.

    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    novembre 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : novembre 2006
    Messages : 116
    Points : 100
    Points
    100
    Par défaut
    Hu ?

    Si on supprime ce lien, cela veut dire que dans la combo' principale il faut choisir le Type et la Race ? Donc potentiellement tout lister Type+Race de tout le monde ?

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    novembre 2006
    Messages
    20 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : novembre 2006
    Messages : 20 583
    Points : 323 652
    Points
    323 652
    Par défaut
    J'ignore ce que tu appelles « combo' principale » mais, avec la relation que tu montres, je crains des chats de race fox-terrier.
    Milou qui ronronne, faut revoir tout Hergé !
    Si vos yeux piquent à cause des fautes d'orthographe, c'est un don que vous pouvez exploiter en cliquant ici.

    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    novembre 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : novembre 2006
    Messages : 116
    Points : 100
    Points
    100
    Par défaut
    Milou qui ronronne, bof bof en effet.

    Donc, il faut que la combo pour le TypeAnimal soit Chien/Chat... Et que l'autre combo (Race) soit vide ou avec un champ 'Inconnu'.
    Une fois que l'on a sélectionné Chien, on a dans la combo Races, que la liste des races liées aux chiens.

    Et comme dans ma table de Races, en plus de ma clé primaire et du champ de description, j'ai une FK qui pointe vers le Type de l'animal, ça devrait pouvoir le faire.

    En gros ma requête pour le choix de la race en mode français serait (enfin je pense) :

    Pour l'animal courant de T_Animaux, lister toutes les T_Races.IdPK + T_Races.Description où l'on a T_Animaux.TypeAnimalFK = T_Races.TypeFK. Trier ensuite le tout en ordre croissant sur T_Races.Description.

  6. #6
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    novembre 2006
    Messages
    20 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : novembre 2006
    Messages : 20 583
    Points : 323 652
    Points
    323 652
    Par défaut
    Pour l'animal courant de T_Animaux, lister toutes les T_Races.IdPK + T_Races.Description où l'on a T_Animaux.TypeAnimalFK = T_Races.TypeFK. Trier ensuite le tout en ordre croissant sur T_Races.Description.
    Je ne suis pas un virtuose du SQL : j'utilise le QBE

    Il me semble, sans garantie, que c'est plutôt T_Animaux.TypeAnimalFK = T_Types.IDPk.
    Si vos yeux piquent à cause des fautes d'orthographe, c'est un don que vous pouvez exploiter en cliquant ici.

    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    novembre 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : novembre 2006
    Messages : 116
    Points : 100
    Points
    100
    Par défaut
    QBE ?

  8. #8
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    novembre 2006
    Messages
    20 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : novembre 2006
    Messages : 20 583
    Points : 323 652
    Points
    323 652
    Par défaut
    http://fr.wikipedia.org/wiki/Query_by_Example


    L'interface proposée par Access pour construire les requêtes.

    Si vos yeux piquent à cause des fautes d'orthographe, c'est un don que vous pouvez exploiter en cliquant ici.

    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  9. #9
    Membre régulier
    Homme Profil pro
    Inscrit en
    novembre 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : novembre 2006
    Messages : 116
    Points : 100
    Points
    100
    Par défaut
    Case N°1 + N°2 : OK, il m'affiche bien une combo avec tout le monde (cas n°1) et tout le monde + le type de l'animal (poule, chien) (cas n°2)

    Nom : Capture d'écran 2014-10-01 17.55.16.png
Affichages : 133
Taille : 10,7 Ko
    Nom : Capture d'écran 2014-10-01 17.59.26.png
Affichages : 203
Taille : 13,0 Ko

    avec les 2 requêtes SQL qui fonctionnent :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT [T_Races].IdPK, [T_Races].Description FROM T_Races ORDER BY [T_Races].Description;
    SELECT T_Races.IdPK, T_Races.Description, T_Types.Description FROM T_Types INNER JOIN T_Races ON T_Types.IdPK = T_Races.TypeFK ORDER BY T_Races.Description;

    Cas N°3 : J'ajoute juste la table T_Animaux dans l'interface :
    Nom : Capture d'écran 2014-10-01 18.01.38.png
Affichages : 167
Taille : 30,2 Ko

    Avez la requête SQL qui du coup affiche une liste avec 7 items tous identiques (col1 = 'non définie', col2 = chien)
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT T_Races.IdPK, T_Races.Description, T_Types.Description FROM (T_Types INNER JOIN T_Races ON T_Types.IdPK = T_Races.TypeFK) INNER JOIN T_Animaux ON (T_Types.IdPK = T_Animaux.TypeAnimalFK) AND (T_Races.IdPK = T_Animaux.RaceFK) ORDER BY T_Races.Description;

    :/

  10. #10
    Membre régulier
    Homme Profil pro
    Inscrit en
    novembre 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : novembre 2006
    Messages : 116
    Points : 100
    Points
    100
    Par défaut
    J'ai suivi ce tuto :
    http://argyronet.developpez.com/offi...ectitemlistAB/

    Cela m'oblige à passer par du VB et donc cela me limite un peu mon édition en mode table mais au moins ça fonctionne.

    Voici le schéma relationnel mis à jour à titre informatif :
    Nom : Relations v2.2.png
Affichages : 250
Taille : 87,2 Ko

    Merci à tous.

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

Discussions similaires

  1. Requête sur table multiple
    Par Lopale dans le forum Requêtes
    Réponses: 3
    Dernier message: 02/07/2014, 01h24
  2. Requêtes sur tables multiples
    Par rodjeur dans le forum Développement de jobs
    Réponses: 7
    Dernier message: 23/05/2012, 12h02
  3. [Oracle] Pb conditions sur tables multiples
    Par guitou12 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/08/2006, 16h48
  4. [SQL] Pb conditions sur tables multiples
    Par guitou12 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 04/08/2006, 14h49
  5. Requête sur table à double clés primaires
    Par darkian dans le forum Langage SQL
    Réponses: 4
    Dernier message: 04/03/2005, 18h28

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