Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2467 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySQL] Aide sur une requète

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MySQL] Aide sur une requète

n°614369
Gurney_Hal​leck
dévisage des figures
Posté le 17-01-2004 à 14:24:58  profilanswer
 

Bonjour,
 
voilà, j'ai la requête suivante :

Citation :

SELECT f.id,f.titre,MAX(l.cd),MAX(l.dd),MAX(l.dvd) FROM films f LEFT JOIN liens l ON f.id=l.film WHERE l.cd=1 GROUP BY l.film ORDER BY f.titre ASC LIMIT 0,20


 
J'ai 2 tables, films et liens. Cette dernière sert à enregistrer les liens entre la table films, et une troisième table.
Mon problème concerne la partie en gras.
Ce que je voudrais faire, exactement, c'est sélectionner tous les enregistrements dont le champs MAX(l.cd) est égal à 1.
 
J'ai essayer de faire un WHERE MAX(l.cd)=1 mais ça marche pas
le WHERE l.cd=1 me retourne tous les enregistrements où l.cd=0 :heink:  
 
bref, si quelqu'un à une idée, je suis preneur :hello:  
A+
Gurney


Message édité par Gurney_Halleck le 17-01-2004 à 18:32:25
mood
Publicité
Posté le 17-01-2004 à 14:24:58  profilanswer
 

n°614466
jagstang
Pa Capona ಠ_ಠ
Posté le 17-01-2004 à 18:27:04  profilanswer
 

attention aux fonctions d'aggréations dans tes jointures. si tu as 3 tables, tu devras avoir 2 jointures (ce qui n'est pas le cas ici)

n°614472
Gurney_Hal​leck
dévisage des figures
Posté le 17-01-2004 à 18:33:46  profilanswer
 

Mais là, je n'appelle que 2 tables (films et liens)
 
je dois quand même joindre la troisième ?

n°615380
bill.fr
Posté le 19-01-2004 à 10:58:29  profilanswer
 

vire le where l.cd = 1 et mets en fin de requête having max(l.cd) = 1 ??


---------------
On ne vit qu'une fois, mais pour qui sait vivre, une seule fois suffit (Merril Stubbing)
n°616024
mrbebert
Posté le 19-01-2004 à 19:35:49  profilanswer
 

bill.fr a écrit :

vire le where l.cd = 1 et mets en fin de requête having max(l.cd) = 1 ??

voilà :)  
 
On peut voir le HAVING comme un WHERE s'exécutant après le GROUP BY, juste avant l'envoi des données. Il veut mieux l'éviter quand on peut (WHERE est souvent plus performant que HAVING), mais il est utile dans ce cas.
 
On peut aussi utiliser la colonne renommée :
SELECT f.id, f.titre, MAX(l.cd) AS max_cd,  ...
...
HAVING max_cd = 1

n°635420
Gurney_Hal​leck
dévisage des figures
Posté le 08-02-2004 à 21:15:05  profilanswer
 

Merci beaucoup, avec du retard :)
 
ça marche parfaitement !

n°635493
Tetedeienc​h
Head Of God
Posté le 08-02-2004 à 22:31:17  profilanswer
 

yes ca c'est du retard si je puis me permettre :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySQL] Aide sur une requète

 

Sujets relatifs
rhaaaaa requete à la con! :/pb pour se connecter de asp à mysql
[MySQL-résolu] apprécierais aide sur requeteAide requete MySQL
Besoin d'aide pour une requete MySQL un peu spéciale (SELECT)[MySQL] Aide pour requête de recherche
[MySQL] Besoin d'aide pour une requête[mysql] aide pour une pitite requète
[sql] mySql requête foireuse sur les dates! @ l'aide !![PHP/MYSQL] Aide pour requete
Plus de sujets relatifs à : [MySQL] Aide sur une requète


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR