|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre éclairé
![]() Gérard OkonoDéveloppeur Web Inscription : juillet 2006 Messages : 707 ![]() |
Bonjour,
Code :
Code :
Merci d'avance... |
||||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Et pourquoi pas :
Sinon, il nous faudrait un peu plus d'info sur ton modèle de données. ced
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
00
|
|
|
#3 | ||||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Bonjour,
Si tu veux les députés qui ont fait uniquement la 7, il faut faire ainsi pour ton filtre : Code sql :
et remplacer ta jointure externe par une jointure interne sur la table depute_legislatures : Code sql :
Soit : "ceux qui ont fait la 7 et qui n'en n'ont pas fait d'autre" |
||||
|
|
00
|
|
|
#4 | ||||||||
|
Membre éclairé
![]() Gérard OkonoDéveloppeur Web Inscription : juillet 2006 Messages : 707 ![]() |
Citation:
mais si je modifie la jointure Code sql :
Citation:
Merci d'avance pour les explications...
|
||||||||
|
|
00
|
|
|
#5 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Votre jointure externe fait ressortir tous les députés, même ceux qui ne sont pas referencés dans la table depute_legislatures. (avec les colonnes de depute_legislatures à NULL).
Vous n'avez pas besoin de ces députés dans votre résultat, puisque vous cherchez précisément ceux qui ont fait la 7eme législature. Donc une jointure externe est inutile. En ajoutant la condition id_legis=7 dans la condition de jointure, pour une jointure interne, cela éliminera aussi les députés qui n'ont pas fait la 7éme... Il ne reste plus qu'a vérifier que les députés résultant de cette jointure interne n'ont effectué aucune autre législature (objet du WHERE NOT EXISTS...) donc si vous avez une ligne de moins avec la jointure interne, c'est que vous devez avoir un député qui remplie la condition de filtre (n'a fait aucune legislature autre que la 7), mais ne rempli pas la condition de jointure (n'a pas fait la legislature 7), ce qui au final revient à dire que vous devez avoir un député qui n'a fait aucune législature... Vous devriez le retrouver avec ceci : Code sql :
Si je ne me trompe pas, cela doit vous renvoyer une seule ligne ? |
||
|
|
00
|
|
|
#6 |
|
Membre éclairé
![]() Gérard OkonoDéveloppeur Web Inscription : juillet 2006 Messages : 707 ![]() |
Merci ca marche super bien.
Maintenant à base de cette requête, je souhaite vérifier si un député avec son noms a effectué la 7ième législature. Si oui dans une colonne de résultat on met 7 - (la liste des autres législatures auxquelles ce député a effectuées). par exemple 7 - (1,5) si ce député a aussi fait la 1 et 5e législatures. Merci d'avance...
|
|
|
00
|
|
|
#7 |
![]() ![]() |
Ta dernière demande relève de la présentation des données et n'est pas le boulot du SGBD mais celui du logiciel qui interroge la BDD.
Mais pour arriver au résultat, il te faut une requête qui affiche toutes les législatures des députés de la 7ème législature. Avec ce que tu as déjà comme requête, tu devrais y arriver.
__________________
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
|
|
|
#8 |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com