Ik heb in ADO.net een forum gemaakt, dat vrij veel lijkt op het forum hier op GoT.
Het forum bestaat uit categorieën, daarin staan boards, per board zijn er de topics en per topic een of enkele posts.
Nu wil ik iets als dit bekomen:
Categorie 1
...
Ik ben er in geslaagd om via subqueries dit (link naar forum) al te bekomen (wat niet zo simpel was).
Zoals je daar ook kan zien, gebeurt de teling van het aantal posts en topics niet correct...
Ik weet hoe ik de topics kan tellen per board, hoe ik het aantal posts kan tellen per board, maar niet hoe ik dat allebei in dezelfde query kan doen.
Ik heb dus eerst geprobeerd om in MYSQL de 2 query's samen te voegen, maar dit lukt me niet omdat ze verschillende WHERE statements hebben.
De query's:
Selecteert de boards per cathegorie
Selecteert de boards per cathegorie + het aantal topics
Selecteert de boards per cathegorie + het aantal posts
Nu wil ik dus iets dat de boards per categorie selecteert + het aantal topics + het aantal posts.
Is dit mogelijk in 1 query?
Ik heb ook al op dataset niveau in ADO.net geprobeerd om de 3 tabellen te "mergen", maar ik krijg dan iets als dit:
Ik hoop dat de tijd die ik gestoken heb in de UBB-codes van deze post niet heb verspilt, en dat iemand me dus kan helpen
Het forum bestaat uit categorieën, daarin staan boards, per board zijn er de topics en per topic een of enkele posts.
Nu wil ik iets als dit bekomen:
Categorie 1
- Board1 [list]
- aantal topics in board
- aantal posts in board
- [/list] Board2 [list]
- aantal topics in board
- aantal posts in board
- [/list]
...
Ik ben er in geslaagd om via subqueries dit (link naar forum) al te bekomen (wat niet zo simpel was).
Zoals je daar ook kan zien, gebeurt de teling van het aantal posts en topics niet correct...
Ik weet hoe ik de topics kan tellen per board, hoe ik het aantal posts kan tellen per board, maar niet hoe ik dat allebei in dezelfde query kan doen.
Ik heb dus eerst geprobeerd om in MYSQL de 2 query's samen te voegen, maar dit lukt me niet omdat ze verschillende WHERE statements hebben.
De query's:
Selecteert de boards per cathegorie
SQL:
1
2
3
| SELECT tblforum_board.catid, tblforum_board.boardid, tblforum_board.boardname, tblforum_board.boardicon, tblforum_board.boarddesc FROM tblforum_board ORDER BY tblforum_board.catid; |
Selecteert de boards per cathegorie + het aantal topics
SQL:
1
2
3
4
| SELECT tblforum_board.catid, tblforum_board.boardid, tblforum_board.boardname, tblforum_board.boardicon, tblforum_board.boarddesc , Count(tblforum_topic.topicid) AS numberoftopics FROM tblforum_board LEFT Join tblforum_topic ON tblforum_topic.boardid = tblforum_board.boardid WHERE tblForum_topic.published = 1 GROUP BY tblforum_board.catid, tblforum_board.boardid; |
Selecteert de boards per cathegorie + het aantal posts
SQL:
1
2
3
4
| SELECT tblforum_board.catid, tblforum_board.boardid, tblforum_board.boardname, tblforum_board.boardicon, tblforum_board.boarddesc , Count(tblforum_post.postid) AS numberofposts FROM tblforum_board LEFT Join tblforum_topic ON tblforum_topic.boardid = tblforum_board.boardid LEFT Join tblforum_post ON tblforum_topic.topicid = tblforum_post.topicid WHERE tblForum_topic.published = 1 and tblForum_post.published = 1 GROUP BY tblforum_board.catid, tblforum_board.boardid; |
Nu wil ik dus iets dat de boards per categorie selecteert + het aantal topics + het aantal posts.
Is dit mogelijk in 1 query?
Ik heb ook al op dataset niveau in ADO.net geprobeerd om de 3 tabellen te "mergen", maar ik krijg dan iets als dit:
CatID | boardID | ... | numberoftopics | numberofposts |
---|---|---|---|---|
1 | 1 | ... | ||
1 | 2 | ... | ||
| | 2 | ||
| | 1 | ||
| | 3 | ||
| | 1 |
Ik hoop dat de tijd die ik gestoken heb in de UBB-codes van deze post niet heb verspilt, en dat iemand me dus kan helpen