Page 1 sur 1

Requête locked

Posté : 18 déc. 2006, 13:38
par DocType
Bijour,

J'ai un petit soucis, je me retrouve avec des requêtes non executées. Voici la requête souhaitée:

Code : Tout sélectionner

SELECT dom.domaine,unix.id_mail,dom.login FROM dom, unix, client WHERE dom.login=unix.login AND client.login=unix.login AND client.section='mutua' GROUP BY dom.domaine LIMIT 0, 1
Peut-elle me faire planter le serveur à ce point là ? j'ai dans dom 15000 enregistrements, dans unix 10000 et dans client 9000.

Merchi

Posté : 18 déc. 2006, 13:46
par Ajoloca
Slt LHDN92,

On ne vois pas la fin de ta requête. Coupe-la.

Posté : 18 déc. 2006, 13:56
par Hubert Roksor
Un p'tit EXPLAIN peut-être ?

Euh, tant qu'on y est il y a plusieurs choses étranges : tu utilises LIMIT sans ORDER BY et tu sélectionnes des champs qui ne sont pas dans le GROUP BY.

Posté : 18 déc. 2006, 14:00
par Ajoloca
Re,

Pourquoi la table client
FROM dom, unix, client 
si tu ne cherches aucune donnée de cette table (pas de champ de cette table dans le select)?

Posté : 18 déc. 2006, 14:01
par Hubert Roksor
À cause de la clause WHERE. Si on reformatte la requête ça donne

Code : Tout sélectionner

SELECT dom.domaine, unix.id_mail, dom.login FROM client JOIN unix USING (login) JOIN dom USING (login) WHERE client.section = 'mutua' GROUP BY dom.domaine LIMIT 1

Posté : 18 déc. 2006, 14:24
par DocType
À cause de la clause WHERE. Si on reformatte la requête ça donne

Code : Tout sélectionner

SELECT dom.domaine, unix.id_mail, dom.login FROM client JOIN unix USING (login) JOIN dom USING (login) WHERE client.section = 'mutua' GROUP BY dom.domaine LIMIT 1
oky, donc là dessus je me fais mon order by à la place de mon group by et ça doit pas poser de soucis ?

Posté : 18 déc. 2006, 14:47
par Hubert Roksor
Absolument aucune idée étant donné que je ne sais pas ce que tu cherches à obtenir et je ne connais ni le format de tes tables ni les résultats de ton EXPLAIN. À tout hasard je dirais "non", dans la mesure où GROUP BY trie déjà les résultats par défaut.

Posté : 19 déc. 2006, 16:21
par DocType
Bon ba merci les gens ^^
J'avais un ptit soucis sur le group by, et le reste c le sql qui fait du boudin :lol:

Posté : 19 déc. 2006, 16:58
par Hubert Roksor
Euh, et c'était quoi exactement ce problème ? Est-ce que tu as résolu celui du GROUP BY incomplet ? Mon conseil, si tu ne veux pas te réserver de drôles de surprise pour l'avenir, configure ton serveur MySQL en mode strict, par exemple:

Code : Tout sélectionner

SET GLOBAL sql_mode = 'ANSI,TRADITIONAL,ONLY_FULL_GROUP_BY';