|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Futur Membre du Club
![]() Inscription : décembre 2010 Messages : 143 ![]() |
Bonjour,
J'effectue la requete suivante : Code :
Le problème c'est que j'ai plusieurs qualifications dans t_qualification qui contiennent le meme id_actif_menace_vulnerabilite et du coup au lieu de me les récupérer toutes, il m'en récupère qu'une. Comment faire pour que toutes les qualifications correspondant à ces critères soient récupérées meme si elles ont des id_menace_vulnerabilite identiques? Merci d'avance |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Saluton,
Utilsation erronée du GROUP BY. Et puis, il faudrait passer aux jointures.
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
|
00
|
|
|
#3 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 846 ![]() |
Salut,
oui les jointures ça existe depuis 10 ans et c'est plus optimisé que cette écriture ton groupe by ne sert à rien si tu fixes une seule valeur sur ce sur quoi tu l'appliques... et ça serait bien de nous donner la structure des tables et un petit échantillon de données...
|
|
|
00
|
|
|
#4 |
|
Futur Membre du Club
![]() Inscription : décembre 2010 Messages : 143 ![]() |
Voici les structures des tables t_qualification et t_actif_menace_vulnerabilite.
La table t_actif_menace_vulnerabilite contient beaucoup plus d'enregistrement que ça donc les id que vous voyez dans t_qualification ne sont peut etre pas dans la capture que j'ai faite. Merci d'avance pour votre aide |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 846 ![]() |
et la 3ème table?
|
|
|
00
|
|
|
#6 |
|
Futur Membre du Club
![]() Inscription : décembre 2010 Messages : 143 ![]() |
Voici la 3ème table (t_declaration)
|
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 846 ![]() |
ok maintenant reformule clairement ce que tu cherche en fonction de quoi
|
|
|
10
|
|
|
#8 |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
Pour info, ce qu'il a écrit est une jointure aussi, mais implicite...
Les jointures existent depuis plus de 10 ans et heureusement. Il est effectivement plus lisible (mais pas forcement plus optimisé) d'utiliser les jointures explicites, séparant ainsi les elements de jointures des criteres de selection.
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
|
|
00
|
|
|
#9 |
|
Futur Membre du Club
![]() Inscription : décembre 2010 Messages : 143 ![]() |
en fait pour chaque qualification correspondant à la requete, je veux recupérer id_actif correspondant à l'actif_menace_vulnerabilite qui le concerne et je veux le recupérer plusieur fois s'il y a plusieurs qualifications avec le meme id_actif_menace_vulnerabilite ce qui n'est pas le cas pour l'instant.
|
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 846 ![]() |
déjà un truc que je remarque dans ta table qualification:
version et valide sont toujours à 1 ou 0 et inverse l'un par rapport à l'autre?
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
|
|
00
|
|
|
#11 |
|
Futur Membre du Club
![]() Inscription : décembre 2010 Messages : 143 ![]() |
on ne se sert pas de la colonne version donc je pense pas qu'il y ait un soucis avec ça.
|
|
|
00
|
|
|
#12 | ||
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 846 ![]() |
donc le count ne sert à rien déjà car tu veux la liste des occurrences et pas le nombre de fois qu'il y en a eu, c'est ça?
un truc genre ça devrait aller: Code sql :
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
||
|
|
00
|
|
|
#13 |
|
Futur Membre du Club
![]() Inscription : décembre 2010 Messages : 143 ![]() |
en fait j'ai vraiment besoin du group by pour bien regouper par id_actif et avec le join j'ai le meme problème
|
|
|
00
|
|
|
#14 |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
Donnez un jeu de test, vos données et vos resultats, ainsi que ceux attendus, car j'avoue avoir du mal a comprendre votre demande
Bon courage
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
|
|
00
|
|
|
#15 | ||
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 846 ![]() |
c'est pas très clair, en effet, car elle est à fond dans son application et que nous on a pas toute la sémantique, mais bon pas grave...
tu as pas dit si ça te retournait au moins ce que tu attendais, même pas groupé... si c'est bon alors tu as la possibilité suivante: on peut utiliser group_concat: Code sql :
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
||
|
|
00
|
|
|
#16 |
|
Futur Membre du Club
![]() Inscription : décembre 2010 Messages : 143 ![]() |
je m'excuse pour le manque de précisions de ma part
Je vais essayer d'etre plus claire : En fait, pour chaque déclaration, j'ai un ensemble de qualifications. Chaque qualification a une actif_menace_vulnerabilite qui lui correspond donc un id_actif. Le problème c'est que pour ma déclaration, je voudrais récupérer autant d'enregistrements que de qualifications meme si certaines qualifications ont des id_actif_menace_vulnerabilite identiques. Pour l'instant, quand j'ai plusieurs qualifications avec des id_actif_menace_vulnerabilite identiques, je recupère 1 seul enregistrement donc un seul id_actif. J'espère avoir été plus claire. |
|
|
00
|
|
|
#17 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 846 ![]() |
est ce que ma requête te donne un résultat cohérent avec ce que tu cherche déjà?
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
|
|
00
|
|
|
#18 |
|
Futur Membre du Club
![]() Inscription : décembre 2010 Messages : 143 ![]() |
oui c'est cohérent par contre si j'ai par exemple 10 qualifications sur ma déclaration, l'objet récupéré n'aura pas forcément une taille de 10 si les qualifications en question ont des id_actif_menace_vulnerabilite identiques
En fait, le résultat de ma requete me permet de remplir un camembert d'actifs en flex. Il se remplit bien avec les bons actifs mais le pourcentage associé à chaque actif n'est pas bon du fait que le nombre d'id_actif récupéré n'est pas bon. |
|
|
00
|
|
|
#19 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 846 ![]() |
...comment ça il est pas bon?
tu veux pas les id_actif alors mais leur nombre?
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
|
|
00
|
|
|
#20 |
|
Futur Membre du Club
![]() Inscription : décembre 2010 Messages : 143 ![]() |
oui les id_actif récupérés sont bons mais leur nombre n'est pas bon
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com