|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre régulier
![]() Inscription : octobre 2010 Messages : 252 ![]() |
Bonjour,
Je souhaiterais savoir selon un cas théorique comment placer des conditions dans des requêtes, car en effet je vois certains mot clés qui me sont inconnus et je pense apprendre de nouvelles choses par ce poste ! J'aimerais pouvoir faire une requête, un SELECT (si toutefois c'est possible) gérant un algorithme de ce type (tous les mots entre crochets symbolisent des champs): Code :
J'aurais bien fait un début de syntaxe SQL mais au final ça n'aurait pas été clair du tout car j'ai un niveau site du zéro (niveau jointure ) et il y aurait eût trop de trous pour faire quelque chose de compréhensible... Avis aux amateurs ! |
||
|
|
00
|
|
|
#2 | ||||
![]() ![]() |
Tu as un gros besoin d'apprendre le SQL !
Je suppose que tu as une table des membres appelée 'membre'. Besoin : Sélectionner (SELECT) le nom, le prénom et le mail dans la table (FROM) membre. Requête : Code :
Si tu veux limiter le nombre de membres retournés par la requête, il te suffit d'utiliser l'instruction LIMIT qui est spécifique à MySQL. Exemple pour 10 membres : Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||||
|
00
|
|
|
#3 | ||
|
Membre régulier
![]() Inscription : octobre 2010 Messages : 252 ![]() |
Bonjour,
J'ai le niveau pour faire ce genre de requête, admettons plutôt une table groupes qui aurait les champs suivants: prenom_membre1, nom membre_1, mail_membre1, prenom_membre2, nom membre_2, mail_membre2, prenom_membre3, nom membre_3, mail_membre3, prenom_membre4, nom membre_4, mail_membre4, prenom_membre5, nom membre_5, mail_membre5, prenom_membre6, nom membre_6, mail_membre6 Le problème: Chaque groupe peut avoir entre 1 et 6 membres, il y a donc également un champ: nb_membres. Lors de la récupération des données actuellement je ferais (en négligeant la syntaxe php de connexion à la bdd etc): Code :
|
||
|
|
00
|
|
|
#4 | ||
![]() ![]() |
Donc ce n'est peut-être pas de cours SQL dont tu as besoin mais de cours sur la modélisation des données !
![]() Exemple... Règle de gestion : Un membre appartient à un seul groupe et un groupe peut avoir de 1 à 6 membres. MCD : Membre -1,1----Appartenir----1,6- Groupe Nota : en réalité, dans un MCD merise, contrairement au diagramme de classes UML, on ne précise par la cardinalité maximale quand elle est supérieure à 1. Ici, ça devrait donc être 1,n du côté de Groupe. Tables : Membre (mbr_id, mbr_nom, mbr_prenom, mbr_mail) Groupe (grp_id, grp_nom, grp_nb_membres_maxi) Membre_groupe (mg_id_membre, mg_id_groupe) Nota : il faudra prévoir un trigger à l'insertion dans la table membre_groupe pour vérifier que le nombre maxi de membres du groupe n'est pas atteint. Requête donnant les groupes avec leurs membres : Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
10
|
|
|
#5 |
|
Membre régulier
![]() Inscription : octobre 2010 Messages : 252 ![]() |
Effectivement ton astuce de créer une table "Membre_groupe (mg_id_membre, mg_id_groupe)" résout le problème ! Et c'est beaucoup plus propre...
Merci pour cette explication de qualité !
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com