Requête avec des champs dynamiques
Bonjour à tous,
je suis confronté à un problème que je n'arrive pas à résoudre. J'ai une table ticket comportant une liste de champs standards, puis il est possible de rajouter des champs supplémentaires afin de personnaliser les tickets.
J'ai donc ma table ticket, une table champs supplémentaires avec le nom du champ et une table valeurs qui est fait la jointure entre les deux tables et c'est ici que je stocke la valeur de mon champ supplémentaire pour un ticket.
Lorsque je veux filtrer mes tickets, l'utilisateur peut à travers un formulaire sélectionner les champs et saisir des valeurs. Tout fonctionne sauf lorsque dans la recherche, il y a au moins 2 champs supplémentaires.
Ma requête ressemble à ça :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
SELECT t.*
FROM ticket t, champssupp cs, valeurs v
WHERE
t.libelle LIKE 'exemple'
AND
(cs.libelle LIKE 'champsupp1' AND v.valeur LIKE 'valeurpossiblesupp1')
AND
(cs.libelle LIKE 'champsupp2' AND v.valeur LIKE 'valeurpossiblesupp2')
AND jointures .. |
Ici je recherche tous les tickets avec comme valeur (valeurpossiblesupp1) pour le champ supplémentaire (champsupp1) et avec comme valeur (valeurpossiblesupp2) pour le champ supplémentaire (champsupp2).
Cela ne fonctionne pas puisque les deux conditions ne peuvent pas être égales en même temps. Mais je ne vois pas comment contourner ce problème..
Merci d'avance pour votre aide