Aide pour requête sql

Résolu
974warrior -  
dna.factory Messages postés 19917 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
j'ai besoin d'une petite aide pour une requête sql, alors dans ma base il y 3 tables, client(NomClient, PrenomClient, AdresseClient), catalogue(NumCatalogue, NomCatalogue) et demande(NumCatalogue, NomClient, PrenomClient). quelle serait la requête pour obtenir la liste des clients (nom, prenom, adresse) qui ont demandé le catalogue montagne?
Dans ma table catalogue il y a NumCatalogue.............NomCatalogue......
................................................ 1 ............. mer ......
................................................ 2 ............. montagne ......

Merci d'avance pour vos réponses à bientôt.

2 réponses

  1. dna.factory Messages postés 19917 Date d'inscription   Statut Modérateur Dernière intervention   1 621
     
    version courte
    select client.* from client, demande
    where client.NomClient=demande.NomClient
    and demande.NumCatalogue=2

    version longue
    select client.* from client, demande, catalogue
    where client.NomClient=demande.NomClient
    and demande.NumCatalogue=catalogue.NumCatalogue
    and catalogue.NomCatalogue='montagne'

    par contre, pense à mettre en place un IdClient pour ta table client, car on n'utilise jamais un nom en clé primaire.
    Stop failing the turing test !
    1
    1. 974warrior
       
      bonjour dna.factory, un grand merci pour ton aide, j'ai pris la version courte et ça marche très bien. Mais j'ai une autre aide pour une requete : afficher la liste de demande de catalogue ( nom, prénom de la personne, nom du catalogue demandé).
      merci
      0
    2. dna.factory Messages postés 19917 Date d'inscription   Statut Modérateur Dernière intervention   1 621
       
      select client.*, catalogue.NomCatalogue from client, demande, catalogue
      where client.NomClient=demande.NomClient
      and demande.NumCatalogue=catalogue.NumCatalogue
      0
    3. 974warrior
       
      merci beaucoup et bonne continuation à toi!
      A bientôt!
      0
    4. Profil bloqué
       
      Euh la version longue elle sert a quoi??mdr
      C'est quoi cette requête complétement inutile????Aucun intérêt de l'écrire....
      0
    5. dna.factory Messages postés 19917 Date d'inscription   Statut Modérateur Dernière intervention   1 621
       
      à quoi sert la version longue...
      un peu d'étude de la requête te donnerais la raison
      en fait la version longue est la vraie réponse à la question.
      la question demande les infos pour le catalogue montagne, pas pour le catalogue numéro 2
      pour faire la requête en version courte, il est nécessaire de connaitre la table
      si c'est faisable quand y'en a deux, c'est beaucoup plus dur quand tu travailles sur 35 000 lignes.
      0
  2. Aktayen Messages postés 189 Date d'inscription   Statut Membre Dernière intervention   20
     
    Est ce qu'il y a moyen de changer la structure de la table?
    Est ce que montagne sera toujours équivalent à 2?

    Tu peux faire un SELECT * FROM demande WHERE numCatalogue='2';
    tu fais une boucle pour afficher les résultats.

    Si tu veux l'adresse, dans ta boucle tu fais un select pour trouver l'adresse de l'utilisateur courant.
    0