Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Группирование и сортировка вместе? (Genyk) 10/10/2008 - 16:20:10
      Re: Группирование и сортировка вместе? (omickron) 11/10/2008 - 08:13:12

> Original message text:
> From: Genyk - 10/10/2008 - 16:20:10
> Subject:Группирование и сортировка вместе?
> -----------------
> Добрый день всем! Есть такая задача:
>
> SELECT news_store.id, news_store.src_id,
> news_store.title, news_store.message,
> news_hosts.host AS host
> FROM news_store, news_hosts
> WHERE news_hosts.id = news_store.src_id
> ORDER BY news_store.id DESC LIMIT 0, 3
>
> Надо как-то переделать этот запрос, что-бы он выдавал записи, уникальные по news_store.src_id. Пробовал GROUP BY news_store.src_id, но это не работает корректно, потому-что этот оператор должен стоять перед ORDER BY, как результат - выводятся данные с не последним id. Также пробовал SELECT DISTINCT(news_store.src_id),..., почему-то проверяется на уникальность все-равно целая запись, а не news_store.src_id :(((. Посоветуйте что-то пожалуйста, у меня от этого запроса уже голова кругом идет...
>


From: omickron - 11/10/2008 - 08:13:12
Subject:Группирование и сортировка вместе?
-----------------
Во-первых, я б убрал в строке "news_hosts.host AS host" AS host, т.к. это абсолютно лишнее; поле и так по умолчанию будет иметь имя host.

Касательно сабжа.
"Записи, уникальные по news_store.src_id" Что ты имеешь ввиду? Если у тебя в таблице news_store 20 записей, а в таблице news_hosts - только 5, то ты хочешь запрос, который выдаст тебе 5 записей? Только в таком запросе поле news_store.src_id будет уникальным. Но чтоб такой запрос сделать, тебе нужно какое-то условие, по которому сервер будет отбирать записи. Ведь в таблице news_store поле src_id может быть одинаковым у 3х, к примеру, строк. По какому условию сервер должен выбрать одну из них?
Если я правильно тебя понял, то тебе нужно добавить в таблицу news_store ещё одно поле - дату добавления, date datetime. И добавить в запрос ещё одно условие WHERE:
WHERE news_store.date=(SELECT MAX(date) FROM news_store)
В этом случае по каждому news_hosts.id тебе выдаст по одной записи из news_store с самой последней датой добавления.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
34272



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |