Bonjour !
Je suis devant une requete a laquelle j'aimerai soustraire des quantité d'informations retournés pour rien, je suppose que les alias pourrai correspondre a ma demande mais je n'en ai jamais utilisé et vu la complexité (enfin pour moi) de cette requete je prefere appeler a l'aide :
il me faut un detail complet + 3 infos pour les autres qui y sont associé
quand je dis un detail complet il y a 9 jointures pour recuperer la somme des infos dans les differentes tables
la requete ressemble a :
je souhaite le detail, complet pour celui dont 'id est 10' mais juste 3 info pour ceux dont l'id est dans la sous requete!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 SELECT id,nom,date,..., GROUP_CONCAT(DISTINCT id_a,"::",prenom_a," ",nom_a SEPARATOR "?"), GROUP_CONCAT(DISTINCT id_l,"::",prenom_l, ... SEPARATOR "?" ) FROM ag LEFT JOIN x ON id = ag_x LEFT JOIN l ON l_x = id_l LEFT JOIN ... WHERE id = 10 OR id IN (@a:=(SELECT f_f FROM f WHERE e_f = 10)) GROUP BY id ORDER BY FIELD(id,10,@a)
A votre avis comment limité le retour d'information ? avec un alias ? avec 2 requete ?
bien sur si j'enleve la sous requete et que je fait en 2 fois le pb est résolu, mais on dit souvent qu'il vaut mieux faire en 1 seule requete (dans certains cas c'est contredit mais bon passons)
Merci
Partager