Bonjour à tous et à toutes,

J'ai un énorme souci avec une de mes requêtes MySQL en php.
Je dispose de plusieurs tables et voici ma requête principale qui met beaucoup trop de temps à s'exécuter :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
$reqHoraire1 = mysql_query("SELECT `IdCourse`,`IdEtablissement`,`IdArret` FROM `Horaire` WHERE
							`IdCourse` IN (SELECT `IdCourse` FROM `Course` WHERE `Sens`='".$_POST['rechSens']."')
						AND	(`IdEtablissement` LIKE '%, ".$_POST['rechEtablissement'].",%'
						  OR `IdEtablissement` LIKE '".$_POST['rechEtablissement'].",%'
						  OR `IdEtablissement` LIKE '%,".$_POST['rechEtablissement'].",%'
						  OR `IdEtablissement` LIKE '%,".$_POST['rechEtablissement']."'
						  OR `IdEtablissement` LIKE '".$_POST['rechEtablissement']."')
						AND `IdCourse` IN (SELECT `IdCourse` FROM `Horaire` WHERE `IdArret` IN (SELECT `IdArret` FROM `Arret` WHERE `Trigramme`='".$_POST['rechCommuneDesservie']."'))
						");
J'ai l'impression que les "IN" imbriqués sont trop lourds.

Y a-t-il un moyen de simplifier cette requête ?

Merci d'avance pour vos réponses.