Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Запрос для форума

2.2K
19 ноября 2006 года
0cool
54 / / 15.06.2006
Здравствуйте.
Я пишу форум. И у меня вопрос.
////////////////////////////////////
у меня в базе хранятся 3 таблицы
1. topics(id_topic(primary), tname, posts, views)
2. replies(id_reply(primary), id_topic, id_member, creation_date, text)
3. members(id_member(primary), mname)

topics связана с replies по id_topic.
members связана с replies по id_member.

Мне нужно сделать запрос, который выводит
все темы, и у каждой темы было указано:
название темы и id темы;
кол-во сообщений и просмотров;
имя пользователя и id пользователя, который начал тему,
дату последнего сообщения по теме и кто написал это сообщение и id
этого сообщения.



Спасибо.
13
20 ноября 2006 года
RussianSpy
3.0K / / 04.07.2006
Насколько я смог разобраться в структуре - пользователя который начал тему установить можно одним способом - выбрав первое сообщение. Это неправильно - гораздо логичнее было бы добавить в таблицу с темами соотв. поле. То же самое относится к последнему сообщению. Подобная выборка при росте объемов БД будет проходить все медленнее и медленнее.
Цитата:

SELEСT t.id_topic, t.tname, t.posts, t.views, s.id_member, m.mname, k.last_id_member, k.last_creation_date FROM topics t, (SELECT DISTINCT id_topic, id_member FROM replies ORDER BY id_reply ASC) as s, (SELECT DISTINCT id_topic as last_id_topic, id_member as last_id_member, creation_date as last_creation_date FROM replies ORDER BY id_reply DESC) as k, members m WHERE t.id_topic=s.id_topic AND s.id_member=m.id_member AND k.last_id_topic=t.id_topic



Протестировать не успел (работа зовет). Если будут проблемы с выполнением - будем думать. Кстати ты не указал какая БД и ее версию

2.2K
20 ноября 2006 года
0cool
54 / / 15.06.2006
Спасибо - пойду попробую
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог