Aide pour requête sql
Résolu
974warrior
-
dna.factory Messages postés 19917 Date d'inscription Statut Modérateur Dernière intervention -
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.
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
-
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 !-
-
-
-
-
à 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.
-
-
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.