Mysql requête imbriquée

WRInaute discret
Bonjour à tous,
je vais essayer d'être clair mais c'est pas évident.

Voila, j'ai une requête qui fonctionne très bien mais comme je n'ai pas trouvé la solution j'en ai une deuxième dans la boucle de résultat de la première mais ça fait 16 requêtes supplémentaires. J'aimerai réduire le nombre de requêtes si c'est possible.

Requête 1 la principale :
SELECT b.COLONNE1, b.COLONNE2, b.COLONNE3 FROM TABLE1 a, TABLE2 b WHERE (b.COLONNE4 = $id OR b.COLONNE5 REGEXP '((^".$id."$)|(^".$id.",)|(,".$id.",)|(,".$."$))') AND a.COLONNE2 = b.COLONNE1 AND a.COLLONNE3 != 0 AND a.COLONNE3 != 3 AND b.COLONNE2 != '' AND b.COLONNE3 != '' AND b.COLONNE3 = 1 ORDER BY RAND() LIMIT 16

Requête 2 dans la boucle
SELECT COLONNE3 FROM TABLE3 WHERE COLONNE1 = ".$row['COLONNE1]." AND COLONNE2 = $id
et le COLONNE3 si il est présent remplace le b.COLLONE2.

Je n'arrive pas à les imbriquer car la requête 2 ne doit pas être liée au conditions de la requête 1.

Si quelqu'un à une idée.

Merci d'avance.

Cordialement.
 
WRInaute impliqué
un truc du genre ?
SELECT b.COLONNE1, b.COLONNE2, b.COLONNE3, (select COLONNE3 FROM TABLE3 WHERE COLONNE1 = b.COLONNE1 AND COLONNE2 = $id) as col4 FROM TABLE1 a, TABLE2 b WHERE (b.COLONNE4 = $id OR b.COLONNE5 REGEXP '((^".$id."$)|(^".$id.",)|(,".$id.",)|(,".$."$))') AND a.COLONNE2 = b.COLONNE1 AND a.COLLONNE3 != 0 AND a.COLONNE3 != 3 AND b.COLONNE2 != '' AND b.COLONNE3 != '' AND b.COLONNE3 = 1 ORDER BY RAND() LIMIT 16
 
Discussions similaires
Haut