|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() Inscription : mai 2002 Messages : 635 ![]() |
Bonjour,
Je sollicite votre aide pour une requête sql. J'ai une table photo avec les champs suivants : id_photo, id_membre,rang_photo Un membre peut avoir 3 photos qu'il peut placer en 1ère, 2ème ou 3 eme position sur sa page. Pour contrôler l'absence de bug dans le script php je souhaiterai vérifier qu'aucun membre ait plus d'une photo avec le même rang. Par exemple : id_photo = 1 id_membre = 2 rang_photo = 1 id_photo = 2 id_membre =2 rang_photo = 1 est interdit car deux photos d'un même membre ont le même rang. mais comment faire cette requête sql ? Merci de votre aide. |
|
|
00
|
|
|
#2 | ||
|
Membre confirmé
![]() Inscription : février 2006 Messages : 185 ![]() |
Salut,
cette requête te donne les membres pour lesquels il existe un rang ou ils ont plus d'une photo Code :
|
||
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Inscription : mai 2002 Messages : 635 ![]() |
merci mais c'est pas ce que je veux...
je veux connaitre les membres qui ont plusieurs photos au même rang... |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Bonjour,
La requête proposée par djlixfe fait ce que tu demandes : elle renvoit id du membre, le rang et le nombre de photo sur ce rang, quand il y a plus d'une photo sur le rang. Ca a tout l'air d'être ce que tu veux... A moins que tu veuilles l'id des photos en plus ? ced |
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() Inscription : mai 2002 Messages : 635 ![]() |
Ben dans la réalité elle ne me donne pas le résultat escompté...
Je veux savoir combien de membres ont "deux photos au moins" sur le rang "1" |
|
|
00
|
|
|
#6 | |
|
Nouveau Membre du Club
![]() Inscription : décembre 2007 Messages : 33 ![]() |
Citation:
Dans ces conditions, tu peux simplement compter les lignes retournées par la requête dedjlixfe en l'utilisant comme sous requête. Mais tu ne sauras pas quels sont les utilisateurs fautifs. |
|
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() Inscription : mai 2002 Messages : 635 ![]() |
Non je n'y avais pas pensé ... effectivement une contrainte sur ces deux champs et l'affaire est classée... !
|
|
|
00
|
|
|
#8 | ||
|
Membre habitué
![]() Inscription : mai 2002 Messages : 635 ![]() |
j'ai un pb de syntaxe pour ajouter ma contrainte :
Code :
merci |
||
|
|
00
|
|
|
#9 | ||||
|
Nouveau Membre du Club
![]() Inscription : décembre 2007 Messages : 33 ![]() |
Le contrôle d'unicité n'est pas une contrainte de type 'CHECK' mais de de type 'UNIQUE'... Et on ne mélange pas les 2 non plus.
2 possibilités pour effectuer ta vérification qui sous postgresql reviennent au même (postgresql créant un index unique implicite derrière chaque containte unique): * définir une contrainte UNIQUE sur la table: Code :
Code :
|
||||
|
|
00
|
|
|
#10 |
|
Membre habitué
![]() Inscription : mai 2002 Messages : 635 ![]() |
Je n'ai pas pu le faire car il me dit qu'il y a des valeurs dupliquées...et c'est normal car l'index ne va pas contrôler l'unicité du couple de colonnes mais l'unicité de chaque colonne. Or, c'est pas le cas dans ma table.
|
|
|
00
|
|
|
#11 |
|
Nouveau Membre du Club
![]() Inscription : décembre 2007 Messages : 33 ![]() |
La table sur laquelle tu positionne une contrainte doit évidement répondre à cette contrainte au moment même où tu mets en place la vérification !
La requête qui t'as été donnée précédemment te permettra d'identifier les enregistrement ne répondant pas à la contrainte et au besoin de les supprimer Défini tel qu'il l'est, l'index ou la contrainte vérifient l'unicité du couple et non pas colonne par colonne ! |
|
|
00
|
|
|
#12 |
|
Membre habitué
![]() Inscription : mai 2002 Messages : 635 ![]() |
Mea culpa, j'ai fait une erreur dans la requête !!!! mille excuses ! la requête fonctionne très bien effectivement...et je vais ensuite faire ce que tu me dis merci à tous !
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com