Ik kom er niet uit. Ik wil de laatste artikelen (tabel articles) laten zien, met de auteur (username uit tabel users) en het aantal reacties (uit tabel comments).
Er zijn dus drie tabellen, waarvan twee tabellen relevant zijn voor mijn probleem: tabel "articles" waar alle artikelen in staan met het unieke veld "articleid", en de tabel "comments" waar onder meer het veld "articleid" staat zodat je weet bij welk artikelen de reacties horen.
Op zich werkt de volgende code prima, behalve als het aantal reacties 0 is: in dat geval klopt "AND a.articleid = c.articleid" niet meer waardoor gelijk het hele artikel niet meer wordt weergegeven.
Met de search kwam ik al enkele soortgelijke problemen tegen (o.a. [rml][ MySQL] left join en count met uitkomst 0[/rml], [rml][ MySql] Join, slaat lege velden over[/rml]), maar geen enkele van die topics kwam met een oplossing die ik begreep of toe kon passen.
Weet iemand of er een trucje of goed doordachte oplossing is voor mijn probleem?
Er zijn dus drie tabellen, waarvan twee tabellen relevant zijn voor mijn probleem: tabel "articles" waar alle artikelen in staan met het unieke veld "articleid", en de tabel "comments" waar onder meer het veld "articleid" staat zodat je weet bij welk artikelen de reacties horen.
Op zich werkt de volgende code prima, behalve als het aantal reacties 0 is: in dat geval klopt "AND a.articleid = c.articleid" niet meer waardoor gelijk het hele artikel niet meer wordt weergegeven.
code:
1
2
3
4
5
6
7
8
| SELECT a.*, b.username, COUNT(c.articleid) AS numcomments FROM articles AS a, users AS b, comments AS c WHERE a.userid = b.userid AND a.articleid = c.articleid AND a.status = 1 GROUP BY a.articleid ORDER BY 'articleid' DESC |
Met de search kwam ik al enkele soortgelijke problemen tegen (o.a. [rml][ MySQL] left join en count met uitkomst 0[/rml], [rml][ MySql] Join, slaat lege velden over[/rml]), maar geen enkele van die topics kwam met een oplossing die ik begreep of toe kon passen.
Weet iemand of er een trucje of goed doordachte oplossing is voor mijn probleem?