|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre éclairé
![]() En formation Inscription : mai 2007 Messages : 127 ![]() |
Bonjour,
Un ami veut mettre en place un petit systême de candidature. Les tables qu'il m'a fournies : Code :
Code :
Par contre pour afficher les candidatures ou l'on n'a pas encore voté j'ai essayé ça : Code :
-> Est-il possible en une seule requête d'afficher les candidatures ou l'on n'a pas encore voté ? -> N'aurait-il pas été préférable créer une 3ème table "votes" et modifier la table candidatures_votes pour en faire uniquement une table de jointure ? Par avance merci. |
||||||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() |
Tu peux le faire en recherchant toutes les candidatures pour lesquels il n'y a pas de lignes dans candidatures_votes.
Pour cela, regarde du coté du not exists
__________________
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. |
|
|
00
|
|
|
#3 |
|
Membre éclairé
![]() En formation Inscription : mai 2007 Messages : 127 ![]() |
Merci pour ta réponse jbrasselet,
EXISTS et NOT EXISTS dans mes souvenirs c'est en effectuant une sous-requête qu'on les utilise ? Je vais regarder de ce côté. |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() |
C'est en effet avec une sous-requête
__________________
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. |
|
|
00
|
|
|
#5 | ||
|
Membre éclairé
![]() En formation Inscription : mai 2007 Messages : 127 ![]() |
Code :
Il faut donc que je fasse intervenir le champ idmembre mais je n'ai pas de sous-ensemble si je fais le fais intervenir dans la clause WHERE de la sous-requête. A moins de faire une jointure dans celle-ci ? |
||
|
|
00
|
|
|
#6 | ||
![]() ![]() |
Ajoute la restriction à ton idmembre dans la sous-requête.
Code :
"Sélectionner les candidatures pour lesquelles il n'existe pas de ligne dans la table des votes du membre 12 pour ces candidats " C'est ce que tu veux ?
__________________
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
|
|
|
#7 |
|
Membre éclairé
![]() En formation Inscription : mai 2007 Messages : 127 ![]() |
Merci CinePhil,
je me suis embrouillé tout seul à force de chercher compliqué. C'est bien cette requête dont mon ami a besoin.
|
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() |
Dans ta sous-requete tu peux même faire un select 'X' comme ça tu ne parcourt pas les colonnes et tu optimise un brin tes performances.
__________________
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. |
|
|
00
|
|
|
#9 | |
![]() ![]() |
Citation:
[NOT] EXISTS est même le seul cas où on peut écrire SELECT * sans craindre de déclencher la guerre des étoiles !
__________________
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
|
|
|
#10 |
|
Membre Expert
![]() ![]() |
OK, je ne savais pas.
Merci de la précision
__________________
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. |
|
|
00
|
|
|
#11 |
|
Membre éclairé
![]() En formation Inscription : mai 2007 Messages : 127 ![]() |
Merci encore pour ces précisions. A priori je pensais aussi que le SELECT * renverrait toutes les colonnes...
C'est normalisé au niveau des différents SGBDR ça ? |
|
|
00
|
|
|
#12 |
![]() ![]() |
Avec une jointure externe vous couvrez tous vos besoins avec une seule requête.
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#13 |
|
Membre éclairé
![]() En formation Inscription : mai 2007 Messages : 127 ![]() |
J'avais pensé aussi à faire un OUTER JOIN mais je n'ai pas réussi à trouver la bonne requête, je vais regarder à nouveau de ce côté mais le gain en performance doit être limité, non ?
|
|
|
00
|
|
|
#14 |
![]() ![]() |
Tout-à-fait, en terme de performances ça devrait être extrêmement proche.
L'avantage c'est que la même requête répond à vos deux besoins :
__________________
Email : http://scr.im/waldar |
|
00
|
Copyright © 2000-2012 - www.developpez.com