En reprenant le problème calmement et méthodiquement, devrait pas y avoir de difficulté pour construire la requête
On part des attributs :
FROM attribus A
WHERE (
(A.Nom="Nom_1" AND A.Valeur="Val_1" )
OR (A.Nom="Nom_2" AND A.Valeur="Val_2" )
...
)
Pas très difficile à construire depuis un formulaire rempli par l'utilisateur
Là, on les attributs recherchés, on peut remonter vers l'ordi. D'abord par la table cmp-attr :
FROM attribus A, cmp-attr CA
WHERE (
(Nom="Nom_1" AND Valeur="Val_1" )
OR (Nom="Nom_2" AND Valeur="Val_2" )
...
) AND (
A.ID = CA.IDattr
)
(certains préfèreraient peut être un LEFT JOIN )
Puis on y ajoute la table ordi-cmp :
FROM attribus A, cmp-attr CA, ordi-cmp OC
WHERE (
(Nom="Nom_1" AND Valeur="Val_1" )
OR (Nom="Nom_2" AND Valeur="Val_2" )
...
) AND (
CA.IDattr = A.ID
) (
OC.IDcmp = CA.IDcmp
)
Là, on tu as toutes les infos, tu n'as plus qu'à y mettre le SELECT qui t'intéresse (par exemple, un SELECT DISTINCT ordi-cmp.IDordi pour ne récupérer que les ID des PC qui correspondent)
Message édité par mrbebert le 23-08-2006 à 21:54:21