J'ai un problème avec mon instruction MySQL. J'ai besoin d'une requête qui compte le nombre de commentaires et le nombre de sujets qu'un utilisateur a créé. Ma structure de table est quelque chose comme ceci:MySQL JOIN avec 3 tables et COUNT() ne fonctionne pas
Table 'users'
-------------
user_id
user_name
...
Table 'topics'
--------------
topic_id
topic_user_id
...
Table 'topiccomments'
---------------------
topiccomment_id
topiccomment_user_id
...
Jusqu'à présent, j'ai pu produire cette requête:
SELECT
u.user_id,
u.user_name,
COUNT(t.topic_user_id) as topic_count,
COUNT(tc.topiccomment_user_id) as topiccomment_count
FROM
users as u
JOIN topiccomments as tc ON u.user_id = tc.topiccomment_user_id
JOIN topics as t ON u.user_id = t.topic_user_id
WHERE
u.user_id = t.topic_user_id AND
u.user_id = tc.topiccomment_user_id
GROUP BY
u.user_id
Cette requête est exécutée, mais les valeurs « TOPIC_COUNT » et « topiccomment_count » sont totalement faux et je ne comprends pas pourquoi.
J'espérais que quelqu'un ici pourrait m'aider?
Il est préférable de le faire en deux requêtes distinctes. Si vous avez vraiment besoin d'une requête, créez deux sous-requêtes. – mdma
Je l'ai besoin dans une requête parce que je dois être capable de faire le tri mysql dans les champs 'topic_count' et 'topiccomment_count' ... A quoi ressemblerait la requête avec des sous-requêtes? Je n'ai aucune expérience avec des sous-requêtes ... – brtdv
peut-être vous pouvez donner un exemple avec les données, les mauvais et les résultats prévus – Nicolas78