MySQL Multiples Gauche Rejoint

Je suis en train de créer une nouvelle page pour un site, je suis en train de travailler. J'ai décidé que je veux à l'utilisation correcte des requêtes MySQL (sens COUNT(id) et rejoint au lieu de plus d'une requête ou num_rows.) Je suis à l'aide d'un AOP wrapper, qui devrait fonctionner très bien, et ce encore échoue lorsqu'il est exécuté directement par le biais de la base de données MySQL CLI application.

En gros, j'ai 3 tables. L'une d'elles détient les nouvelles, on se tient les commentaires et l'un détient les utilisateurs. Mon but ici est de créer une page qui affiche tous (va paginer plus tard) les messages d'actualité les titres, les organes, les auteurs et les dates. Cela a bien fonctionné quand j'ai utilisé une seconde requête pour obtenir le nom d'utilisateur, mais alors j'ai décidé que je préfère utiliser une JOINTURE.

Quel est donc le problème? Eh bien, j'ai besoin de deux jointures. L'un est d'obtenir de l'auteur nom de l'utilisateur et de l'autre pour obtenir le nombre de commentaires. Quand j'ai tout simplement aller de l'auteur, nom d'utilisateur, tout fonctionne comme prévu. Toutes les lignes (il y en a 2) dans la nouvelle table sont affichées. Cependant, lorsque j'ai ajouté ce deuxième à GAUCHE pour REJOINDRE la ligne commentaires, j'arrive à la fin seulement de recevoir une ligne de news (rappelez-vous, il y a 2,) et COUNT(les commentaires.id) me donne 2 (il doit afficher 1, comme j'ai un commentaire pour chaque post.)

Ce que je fais mal? Pourquoi est-ce seulement l'affichage d'un article, et en disant qu'elle a deux commentaires, quand il y a deux messages d'actualité, chacun avec un commentaire?

SELECT news.id, users.username, news.title, news.date, news.body, COUNT(comments.id)
FROM news
LEFT JOIN users
ON news.user_id = users.id
LEFT JOIN comments
ON comments.news_id = news.id

Aussi, juste pour être sûr à propos d'une autre chose, ma gauche se joindre aux commentaires est la bonne manière d'obtenir tous les postes, indépendamment de s'ils ont des commentaires ou pas, correct? Ou serait-ce une jointure droite? Oh, une dernière chose... si je passe de commentaires.news_id = news.id de news.id = commentaires.news_id, j'obtiens 0 résultats.

InformationsquelleAutor John M. | 2010-01-02