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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Requete avec un group by ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Requete avec un group by ?

n°2193003
lapetole
Posté le 05-06-2013 à 19:33:53  profilanswer
 

Salut
 
j'ai une table
ligne idsuivi idprod type  
1          23     1     1  
2          23     3     1  
3          23     4     2  
4          23     5     2  
5          22     1     1  
6          22     3     1  
7          22     4     2  
8          21     5     2
 
Et je cherche à sortir tous les idsuivi qui peuvent correspondrent à 2 conditions :  
condition 1 :(idprod=1 et type=1)  
condition 2 :(idprod=3 et type=1)  
dans cet exemple je souhaiterai donc avoir l'idsuivi 23 et 22 qui remplissent tous les 2 ces 2 conditions mais je vois pas trop comment faire.
Je pensai faire un group by idsuivi mais comme la lecture est linéaire cela ne fonctionne qu'avec la conditions OU alors que j'ai besoin de ET condition1 ET condition2
Auriez vous une piste à me souffler?
D'avance merci.


Message édité par lapetole le 05-06-2013 à 19:35:58
mood
Publicité
Posté le 05-06-2013 à 19:33:53  profilanswer
 

n°2193051
Miagic
Posté le 06-06-2013 à 08:29:59  profilanswer
 

Et avec une requête simple comme celle-ci :
 
SELECT DISTINCT IDSUIVI
FROM TABLE_SUIVI
WHERE TYPE = 1
AND IDPROD IN (1,3)
 
?...


---------------
Miagic
n°2193057
Oliiii
Posté le 06-06-2013 à 09:07:21  profilanswer
 

Si le couple idprod, type est unique par idsuivi tu peux faire:

Code :
  1. Select idsuivi
  2. From table
  3. Where (Type = 1 and idprod = 1)
  4. Or (Type = 1 and idprod = 3)
  5. Group by idsuivi
  6. Having Count(*) = 2


 
Sinon tu peux faire ca (moins performant):

Code :
  1. Select a.idsuivi
  2. From table a
  3.   Join table b on b.idsuivi = a.idsuivi and b.type 1 and b.idprod = 3
  4. Where a.type = 1
  5.   And a.idprod=3


Si tu as des duplicate avec la deuxieme solution tu peux ajouter un distinct.

n°2204395
gpl73
Posté le 27-09-2013 à 12:11:56  profilanswer
 

select idsuivi from table where  
(idprod=1 and type=1) or  
(idprod=3 and type=1)  
ou "en groupant" comme Miagic :)
si tu ne veux pas de doublons , tu mets un distinct...


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

  Requete avec un group by ?

 

Sujets relatifs
question sur requête de groupProblème avec une requete GROUP BY
Requete GROUP BY ou DISTINCT ou impossible a faire ?[SQL] Requete Group By en prenant les infos du plus petit
Requete SQL avec GROUP BY probleme[MySql] requete group by + order by { RESOLU }
requete group by, countRequete MySql group by / limit
Problème de requete, COUNT, GROUP BY etc.Probleme de requête (group by)
Plus de sujets relatifs à : Requete avec un group by ?


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