Aide pour requête sql

Résolu/Fermé
974warrior - 22 mars 2011 à 10:01
dna.factory Messages postés 25372 Date d'inscription mercredi 18 avril 2007 Statut Modérateur Dernière intervention 27 novembre 2024 - 23 mars 2011 à 19:52
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

dna.factory Messages postés 25372 Date d'inscription mercredi 18 avril 2007 Statut Modérateur Dernière intervention 27 novembre 2024 1 613
Modifié par dna.factory le 22/03/2011 à 10:41
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
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
dna.factory Messages postés 25372 Date d'inscription mercredi 18 avril 2007 Statut Modérateur Dernière intervention 27 novembre 2024 1 613
22 mars 2011 à 15:53
select client.*, catalogue.NomCatalogue from client, demande, catalogue
where client.NomClient=demande.NomClient
and demande.NumCatalogue=catalogue.NumCatalogue
0
merci beaucoup et bonne continuation à toi!
A bientôt!
0
Profil bloqué
23 mars 2011 à 14:24
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
dna.factory Messages postés 25372 Date d'inscription mercredi 18 avril 2007 Statut Modérateur Dernière intervention 27 novembre 2024 1 613
23 mars 2011 à 19:52
à 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
Aktayen Messages postés 189 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 17 décembre 2015 19
22 mars 2011 à 10:15
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