Вопрос по выборке с 2-х таблиц и distinct

D
На сайте с 20.09.2010
Offline
175
532

Вобщем есть 2 таблицы: news u images связаны по полю news.id=images.item_id

Если в новости есть больше 1-й фотографии, то выводит новости столько раз сколько фотографий http://agroboard.com/ (справа раздел Новые статьи, статьи о сортах картошки продублировало.)

Как убрать дубли? Почему не работает distinct ?

Вот запрос:

select distinct news.*, images.image_s from news inner join images on news.id=images.item_id and image_type='1' and news.active='1' order by news.id desc limit 0

babnicks
На сайте с 23.10.2009
Offline
47
#1
datum:

Как убрать дубли? Почему не работает distinct ?

DISTINCT говорит "выводить только уникальные строки" :) А разве они в Вашем запросе уникальные ?

Посмотрите на вывод запроса, у вас images.image_s для каждой картинки ведь свой :) Или убирайте images.image_s или ставьте агрегат например min( images.image_s ) и group by ...

Как Вы хотите использовать результат данного запроса, для чего он Вам нужен ?

100% защита от спам-ботов (https://www.keycaptcha.com)
L
На сайте с 07.04.2011
Offline
4
#2
datum:
Как убрать дубли?

Сделать два запроса. Сначала выбрать новости с нужное количество новостей, пройтись по ним циклом, собрать ID и сделать второй запрос к таблице с картинками используя WHERE news_id IN (ID1, ID2, ... , IDN).

datum:
Почему не работает distinct

Потому что в результате джойна строки результирующей таблицы все уникальные.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий