Hallo,
ich bin dabei ein kleines Forum zu coden. Ich hab nun ein Problem mit der Anzeige, wie viele Themen und Beiträge in einem Board vorhanden sind. Ich möchte das alles und die id und den Namen des Boards mit einer Query auslesen. Ich habe es so ausprobiert:
Dies gibt mir aber immer so viele Zeilen aus, wie die Anzahl der Themen. Die Anzahl der Beiträge und Themen spinnt vollkommen.
Danke im Voraus.
ich bin dabei ein kleines Forum zu coden. Ich hab nun ein Problem mit der Anzeige, wie viele Themen und Beiträge in einem Board vorhanden sind. Ich möchte das alles und die id und den Namen des Boards mit einer Query auslesen. Ich habe es so ausprobiert:
Code:
SELECT b.id, b.isCategory, b.name, COUNT(p.id) posts, COUNT(p2.id) threads FROM boards b LEFT JOIN posts p ON p.board = b.id LEFT JOIN posts p2 ON p2.board = b.id GROUP BY p2.thread, b.id ORDER BY b.id ASC
Dies gibt mir aber immer so viele Zeilen aus, wie die Anzahl der Themen. Die Anzahl der Beiträge und Themen spinnt vollkommen.
Code:
--
-- Tabellenstruktur für Tabelle `posts`
--
CREATE TABLE IF NOT EXISTS `posts` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`subject` varchar(80) NOT NULL,
`board` int(10) NOT NULL,
`thread` int(10) NOT NULL,
`message` longtext NOT NULL,
`user` int(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
--
-- Daten für Tabelle `posts`
--
INSERT INTO `posts` (`id`, `subject`, `board`, `thread`, `message`, `user`) VALUES
(1, 't2t', 2, 1, 'tt', 1),
(2, '12', 2, 2, '12', 1),
(3, '12312', 2, 1, '11', 1),
(4, 'test', 2, 4, 'test', 1);
--
-- Tabellenstruktur für Tabelle `boards`
--
CREATE TABLE IF NOT EXISTS `boards` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`isCategory` tinyint(4) NOT NULL,
`name` varchar(80) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
--
-- Daten für Tabelle `boards`
--
INSERT INTO `boards` (`id`, `isCategory`, `name`) VALUES
(2, 0, 'test'),
(1, 1, 'cat'),
(4, 1, 'test'),
(5, 0, 'b');
Danke im Voraus.