Page 1 sur 1

Problème de requète pour selectionner ce qui m'interesse

Posté : 25 juil. 2008, 15:36
par nickoula
bonjour,

J'ai un petit soucis, je cherche a faire un système de filtres me permettant de faire ressortir une personne ayant tous les critères sélectionné. (jusqu'ici tout va bien ) le soucis est que j ai une table me regroupant les personnes une autre regroupant les critères et une troisieme avec l'id des personnes et l'id des critères en sachant qu'une même personne peut avoir choisi plusieurs critères.Et c' est la ou le problème ce pose quand je veux sélectionner dans cette table les id_personnes ayant comme id_criteres 4 et id_criteres 5 par exemple il ne me renvoit aucun résultats.

Code : Tout sélectionner

SELECT p.personne_id FROM personnes_types_criteres s INNER JOIN personne p ON s.personnes_types_criteres_personne = p.personne_id INNER JOIN type_critere ts ON s.personnes_types_criteres_type = ts.type_critere _id WHERE s.personnes_types_criteres_type = 4 AND s.personnes_types_criteres_type = 5
ce qui est normal car une ligne de peut pas avoir tous les criteres mais le problèmes c est comment je peux faire....?

Ma table se schématise comme ca :

Code : Tout sélectionner

CREATE TABLE
champ 1 : personnes_types_criteres_id
champ 2 : personnes_types_criteres_personne
champ 3 : personnes_types_criteres_type

le champ 2 correspond a l'ud de la table personnes et le champ 3 correspond a l'id de la table type_critere.

Dans le champ 2 il peut y avoir donc plusieurs meme id de personnes et dans le champs 3 plusieurs meme id de criteres et j aimerai sortir pour plusieurs id_criteres les personnes correspondante mais que les personnes ayant ces criteres .

Merci d'avance

Posté : 25 juil. 2008, 15:53
par dunbar
Refaire ta base correctement peut-être :?:
Avec une TABLE qui reprendrait
champ 1 : personnes_types_criteres_id
champ 2 : personnes_types_criteres_personne
champ 3 : personnes_types_criteres_type

Posté : 25 juil. 2008, 16:02
par nickoula
en faite elle me sert a stocker pour un utilisateur plusieurs choix qu il aurait pu cocher lors de son inscription.

le champ 2 me sert a identifier la personne et le champ 3 me sert a identifier ses choix.

dans ma base j ai par exemple

personnes_types_criteres_personne = 700
personnes_types_criteres_type = 2

personnes_types_criteres_personne = 700
personnes_types_criteres_type = 4

personnes_types_criteres_personne = 700
personnes_types_criteres_type = 5

et je voudrais que lorsque l on fais une recherche des personne ayant comme criteres 5 ET 4 ET 2 qu il me donne la personne ayant comme id 700

Et j ai déja une table regroupant les personnes avec d autres info et une autre table regroupant juste les critères