Requête locked

Mammouth du PHP | 1776 Messages

18 déc. 2006, 13:38

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

ViPHP
ViPHP | 1961 Messages

18 déc. 2006, 13:46

Slt LHDN92,

On ne vois pas la fin de ta requête. Coupe-la.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

18 déc. 2006, 13:56

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.

ViPHP
ViPHP | 1961 Messages

18 déc. 2006, 14:00

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)?
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

18 déc. 2006, 14:01

À 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

Mammouth du PHP | 1776 Messages

18 déc. 2006, 14:24

À 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 ?

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

18 déc. 2006, 14:47

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.

Mammouth du PHP | 1776 Messages

19 déc. 2006, 16:21

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:

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

19 déc. 2006, 16:58

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';