Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Опять проблема объединения в один запрос :( / 2 сообщений из 2, страница 1 из 1
21.09.2005, 11:18:17
    #33280652
Nafigator
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблема объединения в один запрос :(
Следующий запрос выводит информацию по теме определенного форума

Код: plaintext
SELECT topic_id, topic_name, topic_description, response_id, response_to_id, user_name, FROM_UNIXTIME(response_creation_datetime, '%e %M, %Y at %H:%i') AS responsetime FROM topics LEFT JOIN responses ON topic_id = response_topic_id LEFT JOIN users ON response_author_id = user_id WHERE topic_forum_id =  1 

- это пока без GROUP.

Нужно вывести следующее: имя + описание темы, кол-во ответов, автор сообщения, дата и автор последнего ответа. Вот тут и возникли сложности.
Для простоты покажу вывод первого запроса, для простоты выкину отдельные поля

topic_id response_id response_to_id user_name responsetime
1 1 A 12 Aug
1 2 1 B 13 Aug
1 3 2 C 14 Aug
2 4 B 12 Aug

Нужно что-то типа (понятно, что так не сработает):

Код: plaintext
SELECT topic_id, topic_name, topic_description, response_id, COUNT(response_id) -  1  AS replies, IF (response_to_id , user_name, '') AS author, IF (response_creation_datetime = MAX(response_creation_datetime), user_name, '') AS last_update_author, FROM_UNIXTIME(MAX(response_creation_datetime), '%e %M, %Y at %H:%i') FROM topics LEFT JOIN responses ON topic_id = response_topic_id LEFT JOIN users ON response_author_id = user_id WHERE topic_forum_id =  1  GROUP BY topic_id

Или же придется делать первый запрос и в цикле, в скрипте, проверять значения? (у меня PHP + MySQL 3.23)

Примечение: если response_to_id - пустое, значит данный user_name - это автор сообщения.
...
Рейтинг: 0 / 0
21.09.2005, 11:20:29
    #33280664
Nafigator
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблема объединения в один запрос :(
Во втором запросе - пропуск. Имелось в виду

Код: plaintext
SELECT topic_id, topic_name, topic_description, response_id, COUNT(response_id) -  1  AS replies, IF (response_to_id IS NULL, user_name, '') AS author, IF (response_creation_datetime = MAX(response_creation_datetime), user_name, '') AS last_update_author, FROM_UNIXTIME(MAX(response_creation_datetime), '%e %M, %Y at %H:%i') FROM topics LEFT JOIN responses ON topic_id = response_topic_id LEFT JOIN users ON response_author_id = user_id WHERE topic_forum_id =  1  GROUP BY topic_id
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Опять проблема объединения в один запрос :( / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]