[MySQL] Sous requete

Sous requete [MySQL] - SQL/NoSQL - Programmation

Marsh Posté le 18-05-2010 à 09:09:24    

Bonjour

 

Je cherche à faire une requete d'apres les résultats d'une  (ou plusieurs) autres requetes.
A priori, une sous requete donc.

 

voici ma table :

 

id_attribute  id_product_attribute
29  49676
 73  49676
 21  49676
 86  49676

 30  49675
 73  49675
 21  49675
 86  49675
 28  49674
 73  49674
 21  49674
 86  49674
 29  49673
 72  49673
 21  49673
 86  49673
 30  49672

 

72  49672
 21  49672
...
il y a beaucoup d'enregistrements (+60000)

 

je souhaite une requete permettant de trouver un id_product_attribute, sachant que chaque id_product_attribute correspond a une combinaison de id_attribut
Par exemple, si mes parametre sont id_attribute = 29,73,21,86, je souhaite trouver 49676

 

Quelqu'un pourrait m'aider à écrire une telle requete ?

 

Merci à tous


Message édité par ThiMacGuy le 18-05-2010 à 09:21:19
Reply

Marsh Posté le 18-05-2010 à 09:09:24   

Reply

Marsh Posté le 18-05-2010 à 10:32:49    

Salut,
 
select id_product_attribute, count(id_attribute)
from latable
where id_attribute in (la liste des id_attribute)
group by id_product_attribute
having count(id_attribute) = le nombre d'id_attribute voulus
 
Fais bien gaffe à ce que la liste des id_attribute en entrée soit renseignée correctement, sinon ça peut faire mal :o
 
Sinon, 60K enregistrements, c'est peu ; je ne fais pas de concours de grosse BITE, mais un simple constat.

Reply

Marsh Posté le 18-05-2010 à 11:35:23    

yes ! j'a trouvé ma réponse ! dans mon cas c'est :  
 
SELECT id_product_attribute
FROM la_table
WHERE id_attribute IN (21, 29, 73, 86)
GROUP BY id_product_attribute
HAVING COUNT(*) = 4
la liste des attributs est renseigné par une moulinette, qui ne pose pas de probleme a priori. Donc ca roule;
Merci pour ton aide !
 
Comment appeles ton ce genre de requete ? est ce qu'elle est particuliere ? (comme on parle de jointure, ou de sous requete, est ce la un type particuier ?)


---------------
Ils sont parmis nous, soyez donc sur vos gardes, Peut-être à vos côté à l'instant nous regarde, Ils ont projeté de contaminer la planète, Ils sont cons et dangereux, ce sont les je veux être.
Reply

Marsh Posté le 18-05-2010 à 12:00:52    

Non, rien de particulier, la seule particularité c'est la clause HAVING qui permet d'isoler une condition sur le résultat du count.


Message édité par Fred999 le 18-05-2010 à 12:00:59
Reply

Marsh Posté le 18-05-2010 à 18:11:39    

ok, merci à toi, merci la communauté


---------------
Ils sont parmis nous, soyez donc sur vos gardes, Peut-être à vos côté à l'instant nous regarde, Ils ont projeté de contaminer la planète, Ils sont cons et dangereux, ce sont les je veux être.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed