Eerst maar even de tabellen die ik heb:
Table: users
Table: news
Table: replies
Zoals je ziet is dit een model voor een newspage met replies. Nu wil ik op de hoofdpagina een lijst van de newsitems neerzetten, met daarbij het aantal replies per newsitem.
Een lijst van de newsitems met posternaam krijg ik door:
Een lijst van het aantal replies per newspost krijg ik door:
Maar hoe kan ik nu die twee queries combineren? Het resultaat dat ik wil krijgen is:
Ik heb al zitten rommelen met een subquery maar daar kwam ik niet uit. Toen ik begon te zoeken op het internet (en GoT) kwam ik er bovendien achter dat een subquery niet ondersteund wordt in MySQL. En dat is wel waar het uiteindelijk terecht moet komen. Een subquery is dus geen optie. Maar hoe moet het dan wél??
Ik ben al ruim 2 uur bezig met rommelen maar dit gaat even boven m'n petje. Waarschijnlijk is de oplossing erg simpel maar ik kan 't niet vinden.
Table: users
| userid | name |
| 1 | Jan |
| 2 | Piet |
Table: news
| newsid | title | userid |
| 1 | Eerste Newspost | 1 |
| 2 | Tweede Newspost | 1 |
| 3 | Derde Newspost | 2 |
| 4 | Vierde Newspost | 1 |
Table: replies
| replyid | text | userid | newsid |
| 1 | Reply1 op news1 | 1 | 1 |
| 2 | Reply2 op news1 | 2 | 1 |
| 3 | Reply1 op news2 | 1 | 2 |
| 4 | Reply2 op news2 | 1 | 2 |
| 5 | Reply3 op news1 | 2 | 1 |
Zoals je ziet is dit een model voor een newspage met replies. Nu wil ik op de hoofdpagina een lijst van de newsitems neerzetten, met daarbij het aantal replies per newsitem.
Een lijst van de newsitems met posternaam krijg ik door:
code:
Resultaat:1
2
3
| SELECT title, name FROM news, users WHERE news.userid = users.userid |
| title | name |
| Eerste newspost | Jan |
| Tweede newspost | Jan |
| Derde newspost | Piet |
| Vierde newspost | Jan |
Een lijst van het aantal replies per newspost krijg ik door:
code:
Resultaat:1
2
3
| SELECT newsid, count(replyid) AS replies FROM replies GROUP BY newsid |
| newsid | replies |
| 1 | 3 |
| 2 | 2 |
| 3 | 0 |
| 4 | 0 |
Maar hoe kan ik nu die twee queries combineren? Het resultaat dat ik wil krijgen is:
| title | name | replies |
| Eerste newspost | Jan | 3 |
| Tweede newspost | Jan | 2 |
| Derde newspost | Piet | 0 |
| Vierde newspost | Jan | 0 |
Ik heb al zitten rommelen met een subquery maar daar kwam ik niet uit. Toen ik begon te zoeken op het internet (en GoT) kwam ik er bovendien achter dat een subquery niet ondersteund wordt in MySQL. En dat is wel waar het uiteindelijk terecht moet komen. Een subquery is dus geen optie. Maar hoe moet het dan wél??
Ik ben al ruim 2 uur bezig met rommelen maar dit gaat even boven m'n petje. Waarschijnlijk is de oplossing erg simpel maar ik kan 't niet vinden.
The sentence below is true.
The sentence above is false.