Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с DISTINCT - выводит одинаковые 
:(
    Опции темы
kpuknet
  Дата 22.2.2006, 04:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 28.10.2005

Репутация: нет
Всего: нет



Код

SELECT DISTINCT(comments.post_id), news.id,  comments.text,  comments.autor as com_aut, DATE_FORMAT(comments.date,'%H:%i %d/%m/%y') as com_date,  news.comm_num, news.title 
    FROM 'comments' INNER JOIN news  on 
      comments.post_id = news.id         
    ORDER BY  comments.date DESC LIMIT 0,5


Должен выводить разные по comments.post_id, но выводит И одинаковые почему-то.

Вот первые пять строк из comments:

Код

Id || post_id || date || com_aut || text
==========================================
176 251  2006-02-22 01:49:52 kpuknet sdzfsd 
175 251  2006-02-22 01:49:36 kpuknet sdfsdf
167 217  2006-02-18 12:50:00 youhoo  Включ 
174 217  2006-02-18 12:50:00 youhoo  Включ  
169 251  2006-02-14 01:13:00 kpuknet Супер. 

PM MAIL WWW   Вверх
ТоляМБА
Дата 22.2.2006, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

Репутация: 10
Всего: 252



Насколько я знаю Distinct не работает с одним конкретным полем (если полей при Select несколько) а выводит неповторяющиеся СТРОКИ - в твоем случае ни одной одинаковой строки нет
PM   Вверх
Ignat
Дата 22.2.2006, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



Можно добавить GROUP BY `comments`.`post_id`, тогда будет получен нужный результат, если, конечно, не критичен порядок в группе.


--------------------
Теперь при чем :P
PM   Вверх
Bose
Дата 22.2.2006, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 1
Всего: 51



Цитата(kpuknet @ 22.2.2006, 04:12 Найти цитируемый пост)
Должен выводить разные по comments.post_id, но выводит И одинаковые почему-то.

если тебе нужны только записи с уникальным comments.post_id, то придётся пересоставить запрос, или с исползованием вложенных SELECTов или при помощи GROUP BY
PM MAIL WWW Skype   Вверх
kpuknet
Дата 22.2.2006, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 28.10.2005

Репутация: нет
Всего: нет



Если использовать Group By то неверно сортируется...
PM MAIL WWW   Вверх
Ignat
Дата 22.2.2006, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



kpuknet, а GROUP BY `comments`.`post_id` DESC?


--------------------
Теперь при чем :P
PM   Вверх
kpuknet
Дата 22.2.2006, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 28.10.2005

Репутация: нет
Всего: нет



Ничего не меняется. Подскажите как составить запрос с вложенным SELECT
PM MAIL WWW   Вверх
Bose
Дата 22.2.2006, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 1
Всего: 51



это будет страшное извращение smile примерно так:

Код

SELECT DISTINCT(comments.post_id), (select comments.text from comments where comments.post_id = news.id LIMIT 1) as CommentsText
FROM comments .......


фактически на каждое поле будет выполнятся свой собственный селект, который будет доставать только одну запись для этого поля. в общем страшное извращение smile kpuknet, мне кажется, что будет проще если ты подробнее опишешь, что именно ты хочешь получить, а мы все вместе подумаем как это реализовать.... Ибо что-то мне подсказывает, что можно обойтись без извращений smile
PM MAIL WWW Skype   Вверх
kpuknet
Дата 22.2.2006, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 28.10.2005

Репутация: нет
Всего: нет



Короче надо из таблицы comments выбрать первые 5 неповторяющихся (по post_id) записей.

И потом выбрать из таблицы news записи с id = post_id , чтобы вывести title и прочее все из той же таблицы news.
PM MAIL WWW   Вверх
kpuknet
Дата 23.2.2006, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 28.10.2005

Репутация: нет
Всего: нет



Ну че поможет кто-нить ?
PM MAIL WWW   Вверх
Ignat
Дата 27.2.2006, 00:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



kpuknet, Вам Bose предложил вариант с вложенным селектом... Он разве не подходит?


--------------------
Теперь при чем :P
PM   Вверх
DeadSoul
Дата 27.2.2006, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1217
Регистрация: 25.9.2005
Где: Москва

Репутация: 2
Всего: 11



Цитата(kpuknet @ 22.2.2006, 14:35 Найти цитируемый пост)
Короче надо из таблицы comments выбрать первые 5 неповторяющихся (по post_id) записей.

Что значит неповторяющиеся? Что у них должно быть различно?


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0881 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.