powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка без повторов
11 сообщений из 11, страница 1 из 1
Выборка без повторов
    #32433318
radiator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вобщем проблема такая, мне нужно сделать блок для сайта - "горячие темы". Выбирается 5 тем, с последними ответами, но может случиться ситуация, когда два последних ответа будет в одной теме, тогда в списке будет две одинаковых горячих темы, а это не желательно =) Форум стоит phpbb2. Вот запрос:

SELECT DISTINCT topic_id, post_id, poster_id FROM phpbb2plus_posts ORDER BY post_id DESC LIMIT 0,5

Мне нужно, чтобы не повторялось только поле topic_id. poster_id может повторяться. Я вычитал в доках, что нужно ставить параметр DISTINCT. Но почему-то его наличие или отсутствие никак не сказывается на результате =) Подскажите, пожалуйста, как поступить!
...
Рейтинг: 0 / 0
Выборка без повторов
    #32433441
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вынеси DISTINCT в Where, изапрос типа

Код: plaintext
1.
SELECT topic_id, post_id, poster_id FROM phpbb2plus_posts 
where topic_id in (SELECT DISTINCT topic_id FROM phpbb2plus_posts )
...
Рейтинг: 0 / 0
Выборка без повторов
    #32433443
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я несовсем точно ответил, только показал идею
...
Рейтинг: 0 / 0
Выборка без повторов
    #32433553
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что то я недопонял. Например при

topic_id post_id poster_id
1 1 1
1 2 3

какой должен быть результат?
...
Рейтинг: 0 / 0
Выборка без повторов
    #32433573
radiator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет, что-то не получилось, вот что он ответил:

Ошибка

SQL-запрос :

SELECT topic_id, post_id, poster_id
FROM phpbb2plus_posts
WHERE topic_id
IN (


SELECT DISTINCT topic_id
FROM phpbb2plus_posts
)
ORDER BY post_id DESC
LIMIT 0, 3

Ответ MySQL:


You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT DISTINCT topic_id FROM phpbb2plus_posts ) ORDER BY pos

Наверное версия старая? А как тогда подругому можно сделать?
...
Рейтинг: 0 / 0
Выборка без повторов
    #32433576
radiator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хрен, он должен выбрать в этом случае вариант 1 2 3
...
Рейтинг: 0 / 0
Выборка без повторов
    #32433691
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно сделать типа токого

Код: plaintext
1.
2.
3.
SELECT topic_id, post_id, poster_id FROM phpbb2plus_posts 
where (select count(t1.topic_id) from phpbb2plus_posts t1 where t1.topic_id = phpbb2plus_posts.topic_id  ) =  1 
ORDER BY post_id DESC LIMIT  0 , 5  


правда не знаю прокатит или нет с MySQL не работал


i_i
(';')
(V),(V),,

JS
...
Рейтинг: 0 / 0
Выборка без повторов
    #32433959
radiator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению не заработало =( не знаю что делать...=)
...
Рейтинг: 0 / 0
Выборка без повторов
    #32434256
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здесь надо сделать не DISTINCT а группировку



Код: plaintext
1.
2.
SELECT phpbb2plus_posts.topic_id, Max(phpbb2plus_posts.post_id) AS [Max-post_id], Max(phpbb2plus_posts.poster_id) AS [Max-poster_id]
FROM phpbb2plus_posts 
GROUP BY phpbb2plus_posts.topic_id;
...
Рейтинг: 0 / 0
Выборка без повторов
    #32434259
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, уточняю, предыдущий запрос я делал в Access, для My SQL это выглядит так, (убравши все лишнее)

Код: plaintext
1.
2.
SELECT topic_id, Max(post_id) AS Max_post_id, Max(poster_id) AS Max_poster_id
FROM phpbb2plus_posts 
GROUP BY topic_id
...
Рейтинг: 0 / 0
Выборка без повторов
    #32434751
radiator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vse, vsem ogromnoe spasibo sdelal! Poslednii variant pravilno srabotal, tolko s poster_id 4ut`-4ut` izmenil i vse. Spasibo!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка без повторов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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