|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() |
Salut à tous,
J'ai un petit problème pour une requête sql, j'ai 2 tables reliées, et je doit faire une recherche en mutli-selections mais ma requete en mono selection fonctionne mais pas en multi, sans doute une astuce que je ne vois pas, seriez vous m'aider? Voila ma requete Code :
PROCEDUREID de la table ACT_PROC si je ne met pas le dernier AND pas de problème je récupère les procédure commencant par 'PRO' et qui ont un n° de ACTORID égal à 4 maintenant si c'est possible j'aimerai pouvoir faire une requête me permettant de récupérer le nom des procédures qui commence par PRO et qui ont un n° acteru égal à 4 et à 1 en même temps. D'avance merci pour votre aide |
||
|
|
00
|
|
|
#2 | ||||
|
Membre régulier
![]() Inscription : avril 2002 Messages : 70 ![]() |
Code :
Si tu veux que ta requête soit un peu plus rapide utilise JOIN. Code :
|
||||
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() |
Merci pour votre réponse,
Effectivement, maitenant je n'ai plus de messages d'erreurs, mais, parce qu'il y à toujours un mais, mon problème n'est toujours pas résolu. En réalité, j'ai un champ de recherche (nom de procedures) et une liste multi-sélections (acteurs), j'ai donc un nom de procédure que je recherche avec mon et j'ai mon champ multi-selection, que je comptait utiliser Code :
AND acteurid ='variable1' AND acteurid = 'variable2' Seulement avec le OR j'obtient toutes les procédures qui on un acteurid soit de variable1 ou variable2 , .... mais ce que je cherche à faire c'est bien une recherche sur des id qui on des champs identique variable1 et variable2. Si vous avez une idée!!! D'avance merci. |
|
|
00
|
|
|
#4 |
|
Membre régulier
![]() Inscription : avril 2002 Messages : 70 ![]() |
Je ne comprends pas vraiment ton problème là.
Tu veux faire une recherche sur un champ qui à la valeur1 ET la valeur2 ? |
|
|
00
|
|
|
#5 | ||
|
Membre du Club
![]() |
j'ai une table ACT_PROC avec 3 champs (ID, ACTORID,PROCEDUREID)
J'ai une table ACTEURS (ID, NOM) acteurs.id = act_proc.actorid une table PROCEDURES (ID,NOM) procedures.id = act_proc.procedureid J'aimerai une requete SQL qui me permette de récupérer le nom des procédures qui ont comme acteurs moi ET toi ET lui (et pas les procedures qui moi ou toi ou lui ou ...). C'est la que je bloque, soit il me sort aucuns résultat avec le AND soit il m'en sort de trop avec le OR la requete que j'avais faite: Code :
Encore merci de votre patience et de votre aide |
||
|
|
00
|
|
|
#6 | |||||||
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Citation:
les noms de procédure commencant par PRO qui ont pour acteur 4 et les noms de procédure (quelque soit son nom) qui ont pour acteur 1 Il faut donc mettre des parenthèses : Code :
NB pour tripper.dim la clause WHERE permet de selectionner des enregistrements donc pour que l'enregistrement soit retenu il faut que l'ensemble des conditions de la clause where soit vrai. S'il est faut l'enregistrement n'est pas retenu ! OR si tu mets acteur="moi" AND acteur="toi" comment veux tu trouver UN enregistrement (une donnée acteur) qui soit en même temp égale à "moi" et à "toi" ????? C'est donc bien un OR qu'il faut utiliser car tu recherches les procédures ayant pour acteur toi OU moi |
|||||||
|
|
00
|
|
|
#7 |
|
Membre régulier
![]() Inscription : avril 2002 Messages : 70 ![]() |
Donc si je comprends bien,
Tu veux sélectionner les champs qui comportent tous les acteurs selon tes critères. Dans ta table ACT_PROC, tu peux avoir plusieurs enregistrements avec le même PROCEDUREID qui va déterminer le nombre d'acteurs pour une procédure. J'ai bien saisi le problème ? P.S. Merci pour la correction pour la requête Baribulle, en effet, j'avais oublié les parenthèse. |
|
|
00
|
|
|
#8 |
|
Membre du Club
![]() |
Chaque procedure peut avoir 1 ou plusieurs acteurs qui lui est associés.
Quand je veux faire une recherche par rapport aux acteurs, je donne la possibilité de choisir un ou plusieurs acteurs, ce qui fait que je fait une boucle tantque j'ai des acteurs sélectionné je rajoute à ma requete l'id à rechercher. Si exemple une procedure est "en cas d'incendie", les acteurs sont pompiers, police, ambulanciers donc si je selectionne c'est trois acteurs, j'aurais en réponse de ma recherche la procedure "en cas d'incendie", mais si j'ai un procédure "tomber dans les escaliers" et assosicé à acteur ambulanciers, je peux avoir les deux procédures si je sélectionne ambulanciers, mais si je sélectionne les trois acteurs je ne doit pas avoir la procédure "tomber dans les escaliers" puisqu'elle n'est pas valable pour les 3 acteurs en même temps. |
|
|
00
|
|
|
#9 | ||
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Ah tu n'avais pas précisé la multiplicité des acteurs pour un même projet..
Dans ce cas il faut faire une requete comme celle-ci : Code :
|
||
|
|
00
|
|
|
#10 |
|
Membre du Club
![]() |
UN GRAND MERCI A TOUS POUR VOTRE AIDE
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com