|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre à l'essai
![]() Inscription : septembre 2010 Messages : 71 ![]() |
Bonjour tout le monde,
J'ai une requête qui ne fonctionne pas correctement et je ne comprends vraiment pas pourquoi. J'ai une requête : Code :
AND t_value.VALUE = 'plop' et pourtant j'ai bien ma jointure entre les 2 tables qui est faite ici t_value.id_value = t_rel_kvlg.id_value. Alors pourquoi ça ne tient plus compte du MAX ??? Là, il faudra m'expliquer car je comprends plus rien. Cordialement |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() |
Pas mal de choses à revoir dans cette requête !
1) Les jointures s'écrivent depuis 1992 avec l'opérateur JOIN. 2) La condition suivante ne sert à rien, elle sera toujours vraie Code :
AND t_rel_kvlg.id_key IN (SELECT DISTINCT(id_key) AS id_key FROM t_rel_kvlg) 4) Toutes les colonnes du SELECT ne faisant pas l'objet d'une fonction d'agrégation doivent figurer dans le GROUP BY. Un autre SGBD que MySQL aurait refusé cette requête pour cette raison. Ta requête récrite avec des alias de tables pour faciliter la lecture 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
|
|
|
#3 |
|
Membre à l'essai
![]() Inscription : septembre 2010 Messages : 71 ![]() |
A merci beaucoup c'est super sympa !!!!!! franchement je me suis galéré pas mal de temps là-dessus.
Demain matin je teste ça. Je reviens demain pour voir si j'ai d'autres questions . Merci encore. |
|
|
00
|
|
|
#4 | ||
|
Membre à l'essai
![]() Inscription : septembre 2010 Messages : 71 ![]() |
bon alors j'ai testé ta requête :
Code :
Cette requête fait exactement la même chose que l'ancienne requête que j'ai faite. C'est-à-dire qu'elle ne prend plus en compte la version Maximum du goroco, et affiche les valeurs qui ont 'plop' (c'est bien ce que je veux, mais avec le goroco MAX(version Max) ... et pas des gorocos inférieurs. Je veux les valeurs qui ont plop mais avec le goroco le plus élevé. Et pas les gorocos inférieurs ; c'est pour ca que je fais un MAX pour avoir les gorocos MAX. Cordialement |
||
|
|
00
|
|
|
#5 |
![]() ![]() |
Je crois qu'il va te falloir une sous-requête mais j'ai du mal à deviner comment goupiller tout ça avec la requête actuelle.
Tu peux expliquer plus concrètement ce qu'est censée faire ta requête ?
__________________
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
|
|
|
#6 | ||||
|
Membre à l'essai
![]() Inscription : septembre 2010 Messages : 71 ![]() |
J'ai une table t_rel_kvlg qui contient
exemple : table t_key Code :
Code :
Là je veux regarder la valeur de la clé id_kvlg 120. Mais mon problème est qu'une clé n'a pas forcement le dernier goroco. La clé test2 par exemple a un goroco 6 mais vu que la dernière modification a été faite à la version 6, elle apparaît dans la dernière version, à savoir 18. C'est pour ça que dans la table kvlg le MAX de la version, ce sera sur cette valeur que l'on veut vérifier si elle a une valeur 'plop'. |
||||
|
|
00
|
|
|
#7 | |||
![]() ![]() |
Citation:
![]() Citation:
Citation:
![]() Que doit rendre ta requête comme résultat (en français et en valeurs) ?
__________________
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 à l'essai
![]() Inscription : septembre 2010 Messages : 71 ![]() |
t_key :
Citation:
Citation:
A savoir que cette ligne : Citation:
Tant qu'il n'y a pas une entrée supérieure pour le goroco (avec le même id et la même locale ) |
|||
|
|
00
|
|
|
#9 | ||||
|
Membre à l'essai
![]() Inscription : septembre 2010 Messages : 71 ![]() |
En fait, je crois avoir trouvé la requête mais je ne suis vraiment pas sûr :
En gros il faudrait que cette requête-là devienne ma sous-requête REQUÊTE 1 Code :
REQUËTE 2 Code :
|
||||
|
|
00
|
|
|
#10 | ||
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Oui, il suffit de faire une jointure entre les 2 requêtes :
Code :
__________________
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
|
||
|
|
10
|
|
|
#11 |
|
Membre à l'essai
![]() Inscription : septembre 2010 Messages : 71 ![]() |
Merci beaucoup pour la réponse mais le seul problème malheuresement :
Unknown column 'r.id_value' in 'on clause' il ne connait pas la table r car elle est dans la sous requête. |
|
|
00
|
|
|
#12 |
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Saluton,
Dans la clause ON, r.id_value est devenu t.id_value, si je ne m'abuse.
__________________
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
|
|
|
#13 |
![]() ![]() |
Met l'alias de la sous-requête à la place : t
__________________
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
|
|
|
#14 | |||
|
Membre à l'essai
![]() Inscription : septembre 2010 Messages : 71 ![]() |
Citation:
J'etais parti dans un truc : Code :
Effectivement juste en changent le t à la fin ca me renvoie bien ce que je veux. Un grand merci a tout le monde en tout cas. Cordialement |
|||
|
|
00
|
|
|
#15 |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Au temps pour moi... Me suis gouré dans l'alias...
__________________
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
|
Copyright © 2000-2012 - www.developpez.com