Ik ben eens gaan kloten om een eigen forum te maken in PHP en ben op een probleem gestuit. Ik wil (zonder extra queries) alle gegevens ophalen die ik nodig heb voor de categorie- en forumindex. Dat haal in uit de tabellen category, forum en moderator. In moderator staan alleen 2 ids om de forum tabel aan de user tabel te kunnen linken.
Nou probeer ik de volgende query:
Deze query gaat geheel zonder problemen, maar geeft me alleen maar die categorieën terug waar fora in zitten (dit vind ik persoonlijk geen probleem dus dat mag zo blijven), en alleen maar alle fora die een moderator hebben. Dit laatste is mijn probleem, een forum heeft namelijk geen moderator nodig, administrators kunnen afdoende zijn. Nou dacht ik dat op te lossen met de volgende query:
Nou zegt MySQL hierop dat hij de kolom 'cnt' in de where clause niet kent. Is het op de een of andere manier toch mogelijk om te doen wat ik hier probeer?
Nou probeer ik de volgende query:
code:
1
2
3
4
5
6
| SELECT category.cid, category.name AS cname, category.desc AS cdesc, forum.name AS fname, forum.desc AS fdesc, forum.fid, usr.uname AS modname FROM category, forum, usr, moderator WHERE category.cid = forum.cid AND usr.uid = moderator.mid AND moderator.fid = forum.fid ORDER BY cname, fname, modname |
Deze query gaat geheel zonder problemen, maar geeft me alleen maar die categorieën terug waar fora in zitten (dit vind ik persoonlijk geen probleem dus dat mag zo blijven), en alleen maar alle fora die een moderator hebben. Dit laatste is mijn probleem, een forum heeft namelijk geen moderator nodig, administrators kunnen afdoende zijn. Nou dacht ik dat op te lossen met de volgende query:
code:
1
2
3
4
5
6
7
| SELECT category.cid, category.name AS cname, category.desc AS cdesc, forum.name AS fname, forum.desc AS fdesc, forum.fid, usr.uname AS modname, COUNT(moderator.fid) AS cnt FROM category, forum, usr, moderator WHERE category.cid = forum.cid AND ((usr.uid = moderator.mid AND moderator.fid = forum.fid) OR (cnt = 0)) ORDER BY cname, fname, modname |
Nou zegt MySQL hierop dat hij de kolom 'cnt' in de where clause niet kent. Is het op de een of andere manier toch mogelijk om te doen wat ik hier probeer?
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.