Pbl requete, COUNT & JOIN

Isabelle
Invité n'ayant pas de compte PHPfrance

29 mai 2007, 18:11

J'ai un petit souci avec une jointure sur 2 tables.

Voici ma situation (simplifiée)

1 table User
- id_user


1 table message
- id_msg
- id_user


Je voudrais pouvoir récuperer le nombre de message pour tous mes "user "
(meme ceux qui n'ont pas encore de message (0))

Code : Tout sélectionner

SELECT user.id_user, COUNT(message.id_msg) AS cpt FROM user LEFT JOIN message ON user.id_user = message.id_user GROUP BY user.id_user
Mais visiblement mysql n'apprecie pas ma requete. (timeout)

Qqun peut t-il me proposer une solution ou une correction de la requete.
Merci d'avance.

Isabelle

Mammouth du PHP | 19672 Messages

29 mai 2007, 18:58

Fais donc voir le script SQL de création de tes tables : ta requête est correcte, mais il y a peut-être un problème avec les tables elles-même...:-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Isabelle
Invité n'ayant pas de compte PHPfrance

29 mai 2007, 20:36

Comme tu me confirme que la requete est juste j'ai repris la structure des tables.

Et j'ai eu la bonne idée d'indexer les champs repris dans la requete.
Du coup çà fonctionne.

Je n'avais jamais vu ce cas là.
Si mes champs ne sont pas indexés, çà ne fonctionne pas.

C'est vrai que la table message contient + de 10000 enregistrements pour environ 3000 users.

Merci d'avoir consacré un minimum de temps à mon problème.

Isabelle.

Eléphant du PHP | 199 Messages

29 mai 2007, 20:58

Un petit clic "Mettre résolu" :)
Klomac - Blog Lambda