Voshal
Мизантроп
- Регистрация
- 30 Мар 2009
- Сообщения
- 286
- Реакции
- 109
- Автор темы
- #1
Три таблицы - один запрос (MySQL + PHP)
Приветствую.
Имеются три таблицы.
В таблице forums 4 строки
Необходимо задать 1 запрос mysql, чтобы был такой вывод (причем должны выводиться даже те разделы, в которых нет тем
id Форума - Название форума - количество тем в данном разделе / количество постов в данном разделе
id Форума - Название форума - количество тем в данном разделе / количество постов в данном разделе
id Форума - Название форума - количество тем в данном разделе / количество постов в данном разделе
id Форума - Название форума - количество тем в данном разделе / количество постов в данном разделе
То есть вывод должен быть такой
Одним запросом смог вывести только
id Форума - Название форума - количество тем в данном разделе
id Форума - Название форума - количество тем в данном разделе
id Форума - Название форума - количество тем в данном разделе
то есть
1. Вывелось только три строки, разделы, в которых есть темы.
2. Нет вывода количества постов в данном разделе
Запрос был такой
Прошу помощи в реализации. Заранее благодарю.
Приветствую.
Код:
CREATE TABLE `forums` (
`id_forum` int(5) NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
CREATE TABLE `thems` (
`id_theme` int(5) NOT NULL auto_increment,
`id_forum` int (5) NOT NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
CREATE TABLE `posts` (
`id_post` int(5) NOT NULL auto_increment,
`id_theme` int (5) NOT NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
Код:
[B]forums[/B]
id_forum //id Форума
name //Название раздела
------------------------------
[B]thems[/B]
id_theme //id темы
id_forum //id раздела, которому пренадлежит тема
------------------------------
[B]posts[/B]
id_post //id поста
id_theme //id темы, которой принадлежит пост
Код:
[B]id_forum[/B] [B]name[/B]
1 Флуд
2 Компьютеры
3 Отдых
4 Купля/Продажа
Код:
[B]id_theme[/B] [B]id_forum[/B]
1 2
2 2
3 3
4 1
5 3
6 2
Код:
[B]id_post[/B] [B]id_theme[/B]
1 1
2 2
3 2
4 3
5 2
6 4
7 5
8 6
9 5
id Форума - Название форума - количество тем в данном разделе / количество постов в данном разделе
id Форума - Название форума - количество тем в данном разделе / количество постов в данном разделе
id Форума - Название форума - количество тем в данном разделе / количество постов в данном разделе
id Форума - Название форума - количество тем в данном разделе / количество постов в данном разделе
То есть вывод должен быть такой
HTML:
1 - Флуд - 1 / 1
2 - Компьютеы - 3 / 5
3 - Отдых - 2 / 3
4 - Купля/Продажа - 0 / 0
id Форума - Название форума - количество тем в данном разделе
id Форума - Название форума - количество тем в данном разделе
id Форума - Название форума - количество тем в данном разделе
то есть
HTML:
1 - Флуд - 1
2 - Компьютеы - 3
3 - Отдых - 2
2. Нет вывода количества постов в данном разделе
Запрос был такой
PHP:
$ath = mysql_query("SELECT forums.id_forum, forums.name, count( thems.id_theme ) AS temy
FROM forums, thems
WHERE thems.id_forum = forums.id_forum
GROUP BY forums.id_forum;");
while($forums = mysql_fetch_array($ath))
{
echo "$forums['id_forum'] - $forums['name'] - $forums['temy']";
}