Voica ma requete exacte :
SELECT t.id_artisan
FROM travail_artisan t
INNER JOIN travail_artisan t1 ON t1.id_artisan = t.id_artisan AND t1.id_prestation=12
INNER JOIN cp_artisan jj ON jj.id_artisan = t.id_artisan AND (jj.cp=69000 OR jj.cp=38000)
WHERE t.id_prestation=13 order by t.niveau , field (jj.cp, 69000, 38000) LIMIT 0, 20
Avec deux tables :
travail_artisan : id_artisan, id_prestation ( 3'546'702 entrées)
cp_artisan : id_artisan, cp (384'221 entrées)
Sans LIMIT, j'obtient 34267 enregistrements. Avec la LIMIT, j'obtient un plantage... Si j'enleve , field (jj.cp, 69000, 38000) et que je laisse le LIMIT, ça marche aussi. La logique voudrait donc qu'il y ait un probleme entre field et limit !? non?